import apiFetch from '@wordpress/api-fetch'; import { Spinner } from '@wordpress/components'; import { useEffect, useState, forwardRef, useRef } from '@wordpress/element'; import { __, sprintf } from '@wordpress/i18n'; import { Dialog } from '@headlessui/react'; import classnames from 'classnames'; import { AnimatePresence, motion } from 'framer-motion'; import { useUserSelectionStore } from '@launch/state/user-selections'; export const RestartLaunchModal = ({ setPage }) => { const oldPages = window.extOnbData.resetSiteInformation.pagesIds ?? []; const oldNavigations = window.extOnbData.resetSiteInformation.navigationsIds ?? []; const templatePartsIds = window.extOnbData.resetSiteInformation.templatePartsIds ?? []; const { resetState } = useUserSelectionStore(); const [open, setOpen] = useState(false); const [processing, setProcessing] = useState(false); const initialFocus = useRef(null); const handleExit = () => (window.location.href = `${window.extSharedData.adminUrl}admin.php?page=extendify-assist`); const handleOk = async () => { setProcessing(true); resetState(); for (const pageId of oldPages) { try { await apiFetch({ path: `/wp/v2/pages/${pageId}`, method: 'DELETE', }); } catch (responseError) { console.warn( `delete pages failed to delete a page (id: ${pageId}) with the following error`, responseError, ); } } // delete the wp_navigation posts created by Launch for (const navigationId of oldNavigations) { try { await apiFetch({ path: `/wp/v2/navigation/${navigationId}`, method: 'DELETE', }); } catch (responseError) { console.warn( `delete navigation failed to delete a navigation (id: ${navigationId}) with the following error`, responseError, ); } } for (const template of templatePartsIds) { try { await apiFetch({ path: `/wp/v2/template-parts/${template}?force=true`, method: 'DELETE', }); } catch (responseError) { console.warn( `delete template failed to delete template (id: ${template}) with the following error`, responseError, ); } } setOpen(false); }; useEffect(() => { if (oldPages.length > 0) { setOpen(true); setPage(0); } }, [oldPages.length, setOpen, setPage]); return ( {open && ( null}>
)}
); }; const NavigationButton = forwardRef((props, ref) => { return ( ); });