UNPKG

strapi-plugin-content-manager

Version:

A powerful UI to easily manage your data.

50 lines (41 loc) 1.38 kB
import { useMemo } from 'react'; import { get } from 'lodash'; import { useContentManagerEditViewDataManager } from 'strapi-helper-plugin'; function useSelect(name) { const { addComponentToDynamicZone, createActionAllowedFields, isCreatingEntry, formErrors, modifiedData, moveComponentUp, moveComponentDown, removeComponentFromDynamicZone, readActionAllowedFields, updateActionAllowedFields, } = useContentManagerEditViewDataManager(); const dynamicDisplayedComponents = useMemo( () => get(modifiedData, [name], []).map(data => data.__component), [modifiedData, name] ); const isFieldAllowed = useMemo(() => { const allowedFields = isCreatingEntry ? createActionAllowedFields : updateActionAllowedFields; return allowedFields.includes(name); }, [name, isCreatingEntry, createActionAllowedFields, updateActionAllowedFields]); const isFieldReadable = useMemo(() => { const allowedFields = isCreatingEntry ? [] : readActionAllowedFields; return allowedFields.includes(name); }, [name, isCreatingEntry, readActionAllowedFields]); return { addComponentToDynamicZone, formErrors, isCreatingEntry, isFieldAllowed, isFieldReadable, moveComponentUp, moveComponentDown, removeComponentFromDynamicZone, dynamicDisplayedComponents, }; } export default useSelect;