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