# All files / src/app page.tsx

100% Statements 29/29
100% Branches 4/4
100% Functions 1/1
100% Lines 29/29

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    301x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
    11x
     'use client';

    import { motion } from 'framer-motion';
    import dynamic from 'next/dynamic';
    import { PageLayout } from './PageLayout';

    // Dynamically import SnippetManagerRedux to avoid SSR issues with Pyodide
    const SnippetManagerRedux = dynamic(
      () => import('@/components/SnippetManagerRedux').then(mod => ({ default: mod.SnippetManagerRedux })),
      { ssr: false }
    );

    export default function HomePage() {
      return (
        <PageLayout>
          <motion.div
            initial={{ opacity: 0, y: 20 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.4 }}
          >
            <div className="mb-8">
              <h1 className="text-3xl font-bold tracking-tight mb-2">My Snippets</h1>
              <p className="text-muted-foreground">Save, organize, and share your code snippets</p>
            </div>
            <SnippetManagerRedux />
          </motion.div>
        </PageLayout>
      );
    }