import { __ } from "@wordpress/i18n"; import { useEffect, useState } from "@wordpress/element"; import { PanelBody, Spinner } from "@wordpress/components"; import { TabControls } from "../../../components"; import { CloseIcon, PopoverCrosseIcon } from "../icons/ui"; const ModulesModal = ({ moduleName, title = "Hello", showSidebar, setSidebarToggle, GeneralTab = null, StyleTab = null, SettingsTab = null, PreviewTab = null, settingsValue, setSettingsValue, updateModuleSettings, }) => { const [activePanel, setActivePanel] = useState(title); const [loading, setLoading] = useState(false); const sidebarCloseHandler = () => { document.querySelector("body").classList.remove("show-module-sidebar-popup"); setSidebarToggle(false); }; useEffect(() => { const closeChangeLog = (e) => { if (e.target.classList.contains("show-module-sidebar-popup")) { document.querySelector("body").classList.remove("show-module-sidebar-popup"); setSidebarToggle(false); } }; document.addEventListener("click", closeChangeLog); return () => document.removeEventListener("click", closeChangeLog); }, []); useEffect(() => { if (!showSidebar) { document.querySelector("body").classList.add("show-module-sidebar-popup"); } else { document.querySelector("body").classList.remove("show-module-sidebar-popup"); } }, [showSidebar]); useEffect(() => { if (!loading) { return; } const timeout = setTimeout(() => { setLoading(false); }, 500); return () => { clearTimeout(timeout); }; }, [loading]); useEffect(() => { const handleKeyDown = (event) => { // Check for Ctrl key (or Command key on Mac) and 'S' key if ((event.ctrlKey || event.metaKey) && event.key === "s") { event.preventDefault(); updateModuleSettings(settingsValue); setLoading(true); } }; document.addEventListener("keydown", handleKeyDown); return () => { document.removeEventListener("keydown", handleKeyDown); }; }, [settingsValue]); return (