2020-06-11 14:41:58 +02:00
|
|
|
import React, { useReducer } from 'react';
|
2020-06-01 10:53:36 +02:00
|
|
|
|
|
|
|
import Tabs from '../Tabs';
|
|
|
|
import ContentTypes from './ContentTypes';
|
|
|
|
import PluginsPermissions from './Plugins';
|
|
|
|
import SettingsPermissions from './Settings';
|
|
|
|
import { roleTabsLabel } from '../../../utils';
|
2020-06-11 14:41:58 +02:00
|
|
|
import { useModels } from '../../../hooks';
|
|
|
|
import PermissionsProvider from './PermissionsProvider';
|
|
|
|
import reducer, { initialState } from './reducer';
|
2020-06-01 10:53:36 +02:00
|
|
|
|
|
|
|
const Permissions = () => {
|
2020-06-11 14:41:58 +02:00
|
|
|
const { singleTypes, collectionTypes, components } = useModels();
|
|
|
|
const [state, dispatch] = useReducer(reducer, initialState);
|
|
|
|
|
|
|
|
const handleCollapse = (index, value) => {
|
|
|
|
dispatch({
|
|
|
|
type: 'COLLAPSE_PATH',
|
|
|
|
index,
|
|
|
|
value,
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const providerValues = {
|
|
|
|
...state,
|
|
|
|
components,
|
|
|
|
onCollapse: handleCollapse,
|
|
|
|
};
|
2020-06-01 10:53:36 +02:00
|
|
|
|
|
|
|
return (
|
2020-06-11 14:41:58 +02:00
|
|
|
<PermissionsProvider value={providerValues}>
|
|
|
|
<Tabs tabsLabel={roleTabsLabel}>
|
|
|
|
<ContentTypes contentTypes={collectionTypes} />
|
|
|
|
<ContentTypes contentTypes={singleTypes} />
|
|
|
|
<PluginsPermissions />
|
|
|
|
<SettingsPermissions />
|
|
|
|
</Tabs>
|
|
|
|
</PermissionsProvider>
|
2020-06-01 10:53:36 +02:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Permissions;
|