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}>
{__('Start over?', 'extendify-local')}
{__(
'Go through the onboarding process again to create a new site.',
'extendify-local',
)}
{sprintf(
// translators: %3$s is the number of old pages
__(
'%s pages created in the prior onboarding session will be deleted.',
'extendify-local',
),
oldPages.length,
)}
{__('Exit', 'extendify-local')}
{!processing ? (
__('Continue', 'extendify-local')
) : (
{__('Processing', 'extendify-local')}
)}
)}
);
};
const NavigationButton = forwardRef((props, ref) => {
return (
{props.children}
);
});
# Security Policy
## Reporting Security Bugs
Please report security bugs found in the LiteSpeed Cache plugin's source code through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/litespeed-cache). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.
// Front end editor
@import "config/variables.less";
// Base file
.wpb-js-composer {
@import "shortcodes/vc_tta.less";
}
Skip to content
Mostbet App: Download For Android Apk And Ios – 720
Check the various sporting events and choose multiple results for the bet slip. There may be several factors if mostbet.com isn’t operating in where you are. The owner may have to limit usage of its website from some regions in India. Besides, mostbet login Bangladesh is simple, you can easily take action. Mostbet casino has …
Mostbet Bangladesh Application For Android And Ios Read More »