strapi-plugin-content-manager
Version:
A powerful UI to easily manage your data.
29 lines (21 loc) • 942 B
JavaScript
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { resetPermissions, setPermissions } from './actions';
import { selectPermissions, selectCollectionTypePermissions } from '../../selectors';
const useSyncRbac = (query, collectionTypeUID, containerName = 'listView') => {
const collectionTypesRelatedPermissions = useSelector(selectCollectionTypePermissions);
const permissions = useSelector(selectPermissions);
const dispatch = useDispatch();
const relatedPermissions = collectionTypesRelatedPermissions[collectionTypeUID];
useEffect(() => {
if (relatedPermissions) {
dispatch(setPermissions(relatedPermissions, query ? query.plugins : null, containerName));
return () => {
dispatch(resetPermissions());
};
}
return () => {};
}, [relatedPermissions, dispatch, query, containerName]);
return permissions;
};
export default useSyncRbac;