import { ClipboardIcon, ExclamationCircleIcon, } from '@heroicons/react/24/outline'; import { useSelect, useDispatch } from '@wordpress/data'; import { __, sprintf } from '@wordpress/i18n'; import { STORE_KEY } from '../store'; import { getLocalStorageItem, removeLocalStorageItem } from '../helpers'; import { defaultOnboardingAIState } from '../store/reducer'; import Modal from './modal'; import Button from './button'; import { useNavigateSteps } from '../router'; import { ExclamationTriangleColorfulIcon } from '../ui/icons'; import ModalTitle from './modal-title'; import { renderToString } from '@wordpress/element'; import { copyToClipboard, deleteCookie } from '../utils/helpers'; const supportLink = ( { __( 'contact support', 'ai-builder' ) } ); const ConfirmationStartOverModal = () => { const { setContinueProgressModal, setConfirmationStartOverModal, setWebsiteOnboardingAIDetails, } = useDispatch( STORE_KEY ); const { navigateTo } = useNavigateSteps(); const { confirmationStartOverModal } = useSelect( ( select ) => { const { getConfirmationStartOverModalInfo } = select( STORE_KEY ); return { confirmationStartOverModal: getConfirmationStartOverModalInfo(), }; }, [] ); const handleStartOver = () => { setConfirmationStartOverModal( { open: false } ); removeLocalStorageItem( 'ai-builder-onboarding-details' ); setWebsiteOnboardingAIDetails( defaultOnboardingAIState ); setContinueProgressModal( { open: false } ); deleteCookie( 'ai-show-start-over-warning' ); // Clear the cookie. navigateTo( { to: '/', replace: true, } ); // Navigate to the first step }; const handleContinue = () => { setConfirmationStartOverModal( { open: false } ); setContinueProgressModal( { open: false } ); }; const savedData = getLocalStorageItem( 'ai-builder-onboarding-details' ); const { primaryText = '', errorText = '' } = savedData?.importSiteProgressData?.importErrorMessages || {}; const error = `${ primaryText?.message || primaryText } ${ errorText }`.trim(); const errorString = error ? JSON.stringify( error ) : ''; const handleCopyDetails = () => { const errorInfo = errorString || __( 'Not enough information to display.', 'ai-builder' ); const businessName = savedData?.websiteInfo?.businessName || ''; const description = savedData?.websiteInfo?.businessDesc || ''; const uuid = savedData?.websiteInfo?.uuid || ''; const details = `Error: ${ errorInfo }\nBusiness Name: ${ businessName }\nDescription: ${ description }\nUUID: ${ uuid }`; copyToClipboard( details ); }; return ( { if ( type === 'close-icon' ) { setConfirmationStartOverModal( { open: false } ); setContinueProgressModal( { open: true } ); } } } className="sm:w-full sm:max-w-2xl" >
{ __( 'Start Over?', 'ai-builder' ) }
{ __( 'Starting over will reset your previous session and consume an additional AI credit.', 'ai-builder' ) }
{ __( 'Would you like to continue, or return to your previous session?', 'ai-builder' ) }
{ __( 'Previous Session Details', 'ai-builder' ) }

{ __( 'Error:', 'ai-builder' ) }{ ' ' } { errorString || __( 'Not enough information to display.', 'ai-builder' ) }

{ __( 'Business Name:', 'ai-builder' ) }{ ' ' } { savedData?.websiteInfo?.businessName }

{ __( 'Description:', 'ai-builder' ) }{ ' ' } { savedData?.websiteInfo?.businessDesc }

{ __( 'UUID:', 'ai-builder' ) }{ ' ' } { savedData?.websiteInfo?.uuid }

{ __( 'Importing saved sites won’t be exhausting your AI site generation count.', 'ai-builder' ) }

); }; export default ConfirmationStartOverModal; No access.