import { CheckboxInput } from '@page-creator/components/content/CheckboxInput'; import { CustomTextarea } from '@page-creator/components/content/CustomTextarea'; import { Title } from '@page-creator/components/content/Title'; import { usePageDescriptionStore } from '@page-creator/state/cache'; import { useGlobalsStore } from '@page-creator/state/global'; import { usePagesStore } from '@page-creator/state/pages'; import { useUserStore } from '@page-creator/state/user'; import { useSiteProfileStore } from '@shared/state/site-profile'; import { useEffect, useLayoutEffect, useState } from '@wordpress/element'; import { decodeEntities } from '@wordpress/html-entities'; import { __, sprintf } from '@wordpress/i18n'; const { siteTitle } = window.extSharedData; export const Dashboard = () => { const { nextPage } = usePagesStore(); const { allowsInstallingPlugins, updateUserOption } = useUserStore(); const { siteProfile, setSiteProfile } = useSiteProfileStore(); const { setDescription, description } = usePageDescriptionStore(); const [pageDescription, setPageDescription] = useState(description ?? ''); const [disabled, setDisabled] = useState(true); const [hideEditor, setHideEditor] = useState(true); const { incrementRegenerationCount } = useGlobalsStore(); const [siteDescription, setSiteDescription] = useState( decodeEntities(siteProfile?.description) || '', ); useLayoutEffect(() => { if (siteDescription) return; setHideEditor(false); }, [siteDescription]); useEffect(() => { setDisabled(true); const timer = setTimeout(() => { if (pageDescription) setDescription(pageDescription); if (siteDescription && siteDescription !== siteProfile?.description) { // Persist the site profile if they edit it setSiteProfile({ description: siteDescription }); } setDisabled(!pageDescription.length); }, 1000); return () => clearTimeout(timer); }, [ setDescription, pageDescription, siteDescription, setDisabled, setSiteProfile, siteProfile, ]); return (