@wordpress/edit-post
Version:
Edit Post module for WordPress.
56 lines (55 loc) • 1.96 kB
JavaScript
// 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