import { useEffect, useMemo } from "@wordpress/element"; import { useBlockProps, RichText } from "@wordpress/block-editor"; import InspectorControl from "../../components/inspectorControls/inspectorControls"; import { panelBodyRightIcon, panelBodyTitleIcon } from "../../icons/icons"; import { jsonStringify } from "../shared/helpFn"; import dynamicCssFn from "./dynamicCss"; import Inspector from "./inspect"; import { googleFonts, useDeviceType } from "../../controls/controls"; import { arrowIcons } from "../../controls/constants"; import classNames from "classnames"; import { compose } from "@wordpress/compose"; import addInitialAttr from "../shared/addInitialAttr"; const ButtonEdit = (props) => { const { attributes, setAttributes } = props; const currentDevice = useDeviceType(); const { uniqueId, buttonLabel, iconSource, buttonStyle, hoverEffects, enableIcon, buttonLabelTypography, additionalCssClass, customCss, fontListsEditPage, buttonLabelEnable, buttonLabelGlobalTypography, } = attributes; const googleFontLists = [buttonLabelTypography]; useEffect(() => { setAttributes({ fontLists: jsonStringify(googleFonts(googleFontLists, "frontend")), fontListsEditPage: googleFonts(googleFontLists), }); }, googleFontLists); const blockProps = useBlockProps({ className: additionalCssClass, }); const blockStyling = useMemo(() => { return dynamicCssFn(attributes, "frontend", currentDevice); }, [attributes, currentDevice]); useEffect(() => { if (buttonStyle !== "default" && hoverEffects === "flip") { setAttributes({ hoverEffects: "ghostDefault" }); } }, [buttonStyle]); const BtnIcon = arrowIcons[iconSource]; return (