All files / webview-app/src/components Toolbar.tsx

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

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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105                                                            4x                                                                                                                                                    
import { Eye, Redo2, Settings2, Trash2, Undo2, WandSparkles } from "lucide-react";
import { Button } from "@/components/ui/button";
 
interface ToolbarProps {
  canUndo: boolean;
  canRedo: boolean;
  canDelete: boolean;
  canGenerate: boolean;
  canPreview: boolean;
  onUndo: () => void;
  onRedo: () => void;
  onDelete: () => void;
  onConfigureFrame: () => void;
  onGenerate: () => void;
  onPreviewCode: () => void;
}
 
export function Toolbar({
  canUndo,
  canRedo,
  canDelete,
  canGenerate,
  canPreview,
  onUndo,
  onRedo,
  onDelete,
  onConfigureFrame,
  onGenerate,
  onPreviewCode,
}: ToolbarProps) {
  return (
    <nav className="flex flex-wrap items-center gap-2" aria-label="Editor actions toolbar">
      <Button
        type="button"
        variant="outline"
        size="sm"
        onClick={onConfigureFrame}
        aria-label="Configure JFrame"
      >
        <Settings2 aria-hidden="true" />
        Configure JFrame
      </Button>
 
      <Button
        type="button"
        variant="outline"
        size="sm"
        onClick={onUndo}
        disabled={!canUndo}
        aria-label="Undo"
      >
        <Undo2 aria-hidden="true" />
        Undo
      </Button>
 
      <Button
        type="button"
        variant="outline"
        size="sm"
        onClick={onRedo}
        disabled={!canRedo}
        aria-label="Redo"
      >
        <Redo2 aria-hidden="true" />
        Redo
      </Button>
 
      <Button
        type="button"
        variant="destructive"
        size="sm"
        onClick={onDelete}
        disabled={!canDelete}
        aria-label="Delete selected component"
      >
        <Trash2 aria-hidden="true" />
        Delete
      </Button>
 
      <Button
        type="button"
        variant="outline"
        size="sm"
        onClick={onPreviewCode}
        disabled={!canPreview}
        aria-label="Preview generated Java code"
      >
        <Eye aria-hidden="true" />
        Preview Code
      </Button>
 
      <Button
        type="button"
        size="sm"
        onClick={onGenerate}
        disabled={!canGenerate}
        aria-label="Generate Java code"
      >
        <WandSparkles aria-hidden="true" />
        Generate
      </Button>
    </nav>
  );
}