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 && (
)} */}
>
);
}