import React, { useMemo } from 'react'; import { useIntl } from 'react-intl'; import { Box, Select, Option, GridItem, H3, Text, Stack } from '@strapi/parts'; import { get, isEmpty, takeRight, toLower, without } from 'lodash'; import { getTrad } from '../../utils'; import { useUsersPermissions } from '../../contexts/UsersPermissionsContext'; import BoundRoute from '../BoundRoute'; import SizedInput from '../SizedInput'; import { Header, Wrapper, Sticky } from './Components'; const Policies = () => { const { formatMessage } = useIntl(); const { modifiedData, selectedAction, routes, policies, onChange } = useUsersPermissions(); const baseTitle = 'users-permissions.Policies.header'; const title = !selectedAction ? 'hint' : 'title'; const path = without(selectedAction.split('.'), 'controllers'); const controllerRoutes = get(routes, path[0]); const displayedRoutes = isEmpty(controllerRoutes) ? [] : controllerRoutes.filter(o => toLower(o.handler) === toLower(takeRight(path, 2).join('.'))); const inputName = `${selectedAction}.policy`; const value = useMemo(() => { return get(modifiedData, inputName, ''); }, [inputName, modifiedData]); return (

{formatMessage({ id: 'users-permissions.Policies.header.title', defaultMessage: 'Advanced settings', })}

{selectedAction ? ( ) : ( {formatMessage({ id: 'users-permissions.Policies.header.hint', defaultMessage: "Select the application's actions or the plugin's actions and click on the cog icon to display the bound route", })} )}
); return (
{selectedAction && ( <>
{displayedRoutes.map((route, key) => ( // eslint-disable-next-line react/no-array-index-key ))}
)}
); }; export default Policies;