import { type Component, For } from "solid-js";
type ToolbarButton = { id: string; icon: string; label: string; shortcut?: string; action: () => void };
type EditorToolbarProps = {
onBold: () => void;
onItalic: () => void;
onHeading: (level: 1 | 2 | 3 | 4 | 5 | 6) => void;
onLink: () => void;
onCode: () => void;
onCodeBlock: () => void;
onWikilink: () => void;
onList: () => void;
class?: string;
};
const ToolbarButtonComponent: Component<{ btn: ToolbarButton }> = (props) => (
);
export const EditorToolbar: Component = (props) => {
const buttons: ToolbarButton[] = [
{
id: "bold",
icon: "i-ri-bold",
label: "Bold",
shortcut: "⌘B",
action: () => props.onBold(),
},
{ id: "italic", icon: "i-ri-italic", label: "Italic", shortcut: "⌘I", action: () => props.onItalic() },
{
id: "h1",
icon: "i-ri-h-1",
label: "Heading 1",
action: () => props.onHeading(1),
},
{ id: "h2", icon: "i-ri-h-2", label: "Heading 2", action: () => props.onHeading(2) },
{ id: "h3", icon: "i-ri-h-3", label: "Heading 3", action: () => props.onHeading(3) },
{ id: "h4", icon: "i-ri-h-4", label: "Heading 4", action: () => props.onHeading(4) },
{
id: "h5",
icon: "i-ri-h-5",
label: "Heading 5",
action: () => props.onHeading(5),
},
{ id: "h6", icon: "i-ri-h-6", label: "Heading 6", action: () => props.onHeading(6) },
{
id: "link",
icon: "i-ri-link",
label: "Link",
shortcut: "⌘K",
action: () => props.onLink(),
},
{ id: "code", icon: "i-ri-code-line", label: "Inline Code", action: () => props.onCode() },
{ id: "codeblock", icon: "i-ri-code-box-line", label: "Code Block", action: () => props.onCodeBlock() },
{ id: "wikilink", icon: "i-ri-links-line", label: "Wikilink", action: () => props.onWikilink() },
{
id: "list",
icon: "i-ri-list-unordered",
label: "Bullet List",
action: () => props.onList(),
},
];
return (
);
};
export default EditorToolbar;