# All files / src/app page.tsx

0% Statements 0/29
0% Branches 0/1
0% Functions 0/1
0% Lines 0/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
    30

     '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>
      );
    }