import { __ } from "@wordpress/i18n"; import "./editor.scss"; import { createBlock } from "@wordpress/blocks"; import { dispatch, useSelect } from "@wordpress/data"; import { useBlockProps, RichText, InspectorControls, BlockControls, } from "@wordpress/block-editor"; import { cleanString } from "../../utilities"; import { ToggleControl, PanelBody, KeyboardShortcuts, ToolbarGroup, ToolbarButton, } from "@wordpress/components"; import { headingLevel1, headingLevel2, headingLevel3, headingLevel4, headingLevel5, } from "@wordpress/icons"; import { useEffect } from "@wordpress/element"; import keyIcon from "./img/icon_key.svg"; import chainIcon from "./img/icon_chain.svg"; import houseIcon from "./img/icon_house.svg"; import bulbIcon from "./img/icon_bulb.svg"; import warningIcon from "./img/icon_warning.svg"; import acousticIcon from "./img/icon_acoustic.svg"; import documentationIcon from "./img/icon_documentation.svg"; import notificationIcon from "./img/icon_notification.svg"; import searchIcon from "./img/icon_search.svg"; import infoIcon from "./img/icon_info.svg"; import tipIcon from "./img/icon_tip.svg"; import euroIcon from "./img/icon_euro.svg"; export default function Edit({ attributes, setAttributes, clientId, ...blockProps }) { const { title, headingLevel, hasIcon, iconName, idName, anchor } = attributes; useEffect(() => { if (anchor) { setAttributes({ idName: anchor }); } else if (cleanString && title && headingLevel === "h2") { setAttributes({ idName: "title-" + cleanString(title), }); } }, [anchor]); const blockIndex = useSelect((select) => { const { getBlockIndex } = select("core/block-editor"); return getBlockIndex(clientId); }); function onChangeTitle(newTitle) { setAttributes({ title: newTitle }); } function onChangeHeadingLevel(newHeadingLevel) { setAttributes({ headingLevel: newHeadingLevel }); } function handleIconChange(newIconName) { setAttributes({ iconName: newIconName }); } function onHasIconChange(hasIconToggleValue) { setAttributes({ hasIcon: hasIconToggleValue, }); } function getIconPicture() { switch (iconName) { case "key": return keyIcon; case "chain": return chainIcon; case "house": return houseIcon; case "bulb": return bulbIcon; case "warning": return warningIcon; case "acoustic": return acousticIcon; case "documentation": return documentationIcon; case "notification": return notificationIcon; case "search": return searchIcon; case "info": return infoIcon; case "tip": return tipIcon; case "euro": return euroIcon; } } function insertParagraphOnEnter(e) { const newBlock = createBlock("core/paragraph", {}); dispatch("core/block-editor").insertBlocks(newBlock, blockIndex + 1); } let iconPicture = getIconPicture(); console.log(iconName); return ( <> { onChangeHeadingLevel("h1"); }} /> { onChangeHeadingLevel("h2"); }} /> { onChangeHeadingLevel("h3"); }} /> { onChangeHeadingLevel("h4"); }} /> { onChangeHeadingLevel("h5"); }} /> {hasIcon && ( handleIconChange("key")} /> handleIconChange("chain")} /> handleIconChange("house")} /> handleIconChange("bulb")} /> handleIconChange("warning")} /> handleIconChange("acoustic")} /> handleIconChange("documentation")} /> handleIconChange("search")} /> handleIconChange("notification")} /> handleIconChange("info")} /> handleIconChange("euro")} /> handleIconChange("tip")} /> )} insertParagraphOnEnter(e), }} > {/* {hasIcon && (
)} */}
); }