Sha256: 0c4c7d96108c747dc354570a575a45a63e0fdc3b1acc53c602dc4193a0d520bf
Contents?: true
Size: 1.43 KB
Versions: 633
Compression:
Stored size: 1.43 KB
Contents
import React, {useCallback} from "react"; import EditorButton from "./EditorButton"; import { ToolbarTypes } from "./EditorTypes"; const ToolbarNodes = ({editor}: any): React.ReactElement => { // eslint-disable-next-line react-hooks/rules-of-hooks const setLink = useCallback(() => { const previousUrl = editor.getAttributes("link").href; const url = window.prompt("URL", previousUrl); // cancelled if (url === null) { return; } // empty if (url === "") { editor.chain().focus().extendMarkRange("link").unsetLink().run(); return; } // update link editor.chain().focus().extendMarkRange("link").setLink({ href: url }).run(); }, [editor]); const toolbarNodesItems = [ { onclick: () => editor.chain().focus().toggleCodeBlock().run(), icon: "code", isActive: editor.isActive("codeBlock"), text: "Codeblock", }, { onclick: setLink, icon: "link", isActive: editor.isActive("link"), text: "Link", }, ]; return ( <> {toolbarNodesItems.map(({ onclick, icon, text, isActive }: ToolbarTypes, index: number) => ( <EditorButton classname={`toolbar_button ${isActive ? 'is-active' : ''}`} icon={icon} key={index} onclick={onclick} text={text} /> ))} </> ) } export default ToolbarNodes
Version data entries
633 entries across 633 versions & 1 rubygems