"use client" import type { LucideIcon } from "lucide-react" import { Separator } from "@/components/ui/separator" import { ToggleGroup, ToggleGroupItem, } from "@/components/ui/toggle-group" type EditorToolbarButtonAction = { key: string label: string icon: LucideIcon onClick: () => void disabled?: boolean pressed?: boolean } type EditorToolbarSeparatorAction = { key: string type: "separator" } export type EditorToolbarAction = EditorToolbarButtonAction | EditorToolbarSeparatorAction type EditorToolbarProps = { actions: ReadonlyArray } function isSeparatorAction( action: EditorToolbarAction ): action is EditorToolbarSeparatorAction { return "type" in action && action.type === "separator" } export function EditorToolbar({ actions }: EditorToolbarProps) { return (
{actions.map((action) => { if (isSeparatorAction(action)) { return } const Icon = action.icon return ( ) })}
) }