import { __ } from "@wordpress/i18n"; import "./editor.scss"; 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"; import { RichText, useBlockProps, BlockControls, InnerBlocks, InspectorControls, MediaReplaceFlow, } from "@wordpress/block-editor"; import { trash } from "@wordpress/icons"; import { Button, ToolbarButton, PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, RadioControl, } from "@wordpress/components"; export default function Edit({ attributes, setAttributes }) { const { title, iconName, hasTitle, hasIcon, hasLogo, variant, logoAlt, logoId, logoUrl, iconPosition, } = attributes; 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 onIconChange(newIconName) { setAttributes({ iconName: newIconName }); } function onTitleChange(title) { setAttributes({ title }); } function onHasTitleChange() { setAttributes({ hasTitle: !hasTitle, title: undefined, }); } function onhasIconChange() { setAttributes({ hasIcon: !hasIcon, }); } function onVariantChange(variant) { setAttributes({ variant }); } function onHasLogoChange() { setAttributes({ hasLogo: !hasLogo, }); if (!hasLogo) { removeLogoAttributes(); } } function setLogoAttributes(media) { setAttributes({ logoUrl: media.url, logoId: media.id, logoAlt: media?.alt, }); } function removeLogoAttributes() { setAttributes({ logoUrl: null, logoId: null, logoAlt: null, }); } let iconPicture = getIconPicture(); function handleIconPositionChange(newPosition) { setAttributes({ iconPosition: newPosition }); } console.log(iconPosition); console.log(hasIcon); return ( <> {hasIcon && ( )} {hasLogo && ( {logoUrl && } {logoUrl && ( <> > )} )} onIconChange("key")} /> onIconChange("chain")} /> onIconChange("house")} /> onIconChange("bulb")} /> onIconChange("warning")} /> onIconChange("acoustic")} /> onIconChange("documentation")} /> onIconChange("search")} /> onIconChange("notification")} /> onIconChange("info")} /> onIconChange("euro")} /> onIconChange("tip")} /> {hasTitle && ( {hasIcon && iconPosition === "top" && ( )} )} {hasIcon && iconPosition === "side" && !hasTitle && ( )} {hasLogo && ( {!logoUrl && ( )} {logoUrl && } )} > ); }