UNPKG

@wordpress/edit-post

Version:
56 lines (55 loc) 1.96 kB
// packages/edit-post/src/components/meta-boxes/use-meta-box-initialization.js import { useDispatch, useSelect } from "@wordpress/data"; import { store as editorStore } from "@wordpress/editor"; import { store as coreStore } from "@wordpress/core-data"; import { useEffect } from "@wordpress/element"; import { store as editPostStore } from "../../store/index.mjs"; import { unlock } from "../../lock-unlock.mjs"; var useMetaBoxInitialization = (enabled) => { const { isEnabledAndEditorReady, isCollaborationEnabled, hasIncompatibleMetaBoxes, hasActiveMetaBoxes } = useSelect( (select) => { const { __unstableIsEditorReady, isCollaborationEnabledForCurrentPost } = unlock(select(editorStore)); return { isEnabledAndEditorReady: enabled && __unstableIsEditorReady(), isCollaborationEnabled: isCollaborationEnabledForCurrentPost(), hasIncompatibleMetaBoxes: enabled ? select(editPostStore).getAllMetaBoxes().some((metaBox) => !metaBox.__rtc_compatible) : false, hasActiveMetaBoxes: enabled && select(editPostStore).hasMetaBoxes() }; }, [enabled] ); const { setCollaborationSupported } = unlock(useDispatch(coreStore)); const { updateEditorSettings } = useDispatch(editorStore); const { initializeMetaBoxes } = useDispatch(editPostStore); useEffect(() => { if (isEnabledAndEditorReady) { initializeMetaBoxes(); if (isCollaborationEnabled && hasIncompatibleMetaBoxes) { setCollaborationSupported(false); } if (hasActiveMetaBoxes) { updateEditorSettings({ disableVisualRevisions: true }); } } }, [ isEnabledAndEditorReady, initializeMetaBoxes, isCollaborationEnabled, setCollaborationSupported, hasIncompatibleMetaBoxes, hasActiveMetaBoxes, updateEditorSettings ]); }; export { useMetaBoxInitialization }; //# sourceMappingURL=use-meta-box-initialization.mjs.map