# All files / src/components/snippet-manager SnippetGrid.tsx

0% Statements 0/50
0% Branches 0/1
0% Functions 0/1
0% Lines 0/50

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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51

     import { SnippetCard } from '@/components/features/snippet-display/SnippetCard'
    import { Snippet } from '@/lib/types'

    interface SnippetGridProps {
      snippets: Snippet[]
      onView: (snippet: Snippet) => void
      onEdit: (snippet: Snippet) => void
      onDelete: (id: string) => void
      onCopy: (code: string) => void
      onMove: () => void
      selectionMode: boolean
      selectedIds: string[]
      onToggleSelect: (id: string) => void
    }

    export function SnippetGrid({
      snippets,
      onView,
      onEdit,
      onDelete,
      onCopy,
      onMove,
      selectionMode,
      selectedIds,
      onToggleSelect,
    }: SnippetGridProps) {
      return (
        <div
          className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"
          data-testid="snippet-grid"
          role="region"
          aria-label="Snippets list"
        >
          {snippets.map((snippet) => (
            <SnippetCard
              key={snippet.id}
              snippet={snippet}
              onView={onView}
              onEdit={onEdit}
              onDelete={onDelete}
              onCopy={onCopy}
              onMove={onMove}
              selectionMode={selectionMode}
              isSelected={selectedIds.includes(snippet.id)}
              onToggleSelect={onToggleSelect}
            />
          ))}
        </div>
      )
    }