strapi-plugin-content-manager
Version:
A powerful UI to easily manage your data.
39 lines (32 loc) • 992 B
JavaScript
import { useMemo } from 'react';
import { get } from 'lodash';
import { useContentManagerEditViewDataManager } from 'strapi-helper-plugin';
function useSelect(keys) {
const {
createActionAllowedFields,
formErrors,
isCreatingEntry,
modifiedData,
onChange,
readActionAllowedFields,
shouldNotRunValidations,
updateActionAllowedFields,
} = useContentManagerEditViewDataManager();
const allowedFields = useMemo(() => {
return isCreatingEntry ? createActionAllowedFields : updateActionAllowedFields;
}, [isCreatingEntry, createActionAllowedFields, updateActionAllowedFields]);
const readableFields = useMemo(() => {
return isCreatingEntry ? [] : readActionAllowedFields;
}, [isCreatingEntry, readActionAllowedFields]);
const value = get(modifiedData, keys, null);
return {
allowedFields,
formErrors,
isCreatingEntry,
onChange,
readableFields,
shouldNotRunValidations,
value,
};
}
export default useSelect;