import React, { useState } from 'react'; import { Header } from '@buffetjs/custom'; import { Padded } from '@buffetjs/core'; import { Formik } from 'formik'; import { useIntl } from 'react-intl'; import { request } from 'strapi-helper-plugin'; import { useHistory } from 'react-router-dom'; import { useFetchPermissionsLayout } from '../../../../src/hooks'; import BaselineAlignement from '../../../../src/components/BaselineAlignement'; import ContainerFluid from '../../../../src/components/ContainerFluid'; import FormCard from '../../../../src/components/FormBloc'; import { ButtonWithNumber, Permissions } from '../../../../src/components/Roles'; import SizedInput from '../../../../src/components/SizedInput'; import schema from './utils/schema'; const CreatePage = () => { const { formatMessage } = useIntl(); const [isSubmiting, setIsSubmiting] = useState(false); // @HichamELBSI Adding the layout since you might need it for the plugins sections const { isLoading: isLayoutLoading } = useFetchPermissionsLayout(); const { goBack } = useHistory(); const headerActions = (handleSubmit, handleReset) => [ { label: formatMessage({ id: 'app.components.Button.reset', defaultMessage: 'Reset', }), onClick: handleReset, color: 'cancel', type: 'button', }, { label: formatMessage({ id: 'app.components.Button.save', defaultMessage: 'Save', }), onClick: handleSubmit, color: 'success', type: 'submit', isLoading: isSubmiting, }, ]; const handleCreateRoleSubmit = async data => { try { setIsSubmiting(true); const res = await request('/admin/roles', { method: 'POST', body: data, }); if (res.data.id) { strapi.notification.success('Settings.roles.created'); goBack(); } } catch (err) { // if (err.response) { // const data = get(err, 'response.payload', { data: {} }); // const apiErrors = formatAPIErrors(data); // } strapi.notification.error('notification.error'); setIsSubmiting(false); } }; const actions = [ console.log('Open user modal')} key="user-button"> {formatMessage({ id: 'Settings.roles.form.button.users-with-role', defaultMessage: 'Users with this role', })} , ]; return ( {({ handleSubmit, values, errors, handleReset, handleChange, handleBlur }) => (
{!isLayoutLoading && ( )} )} ); }; export default CreatePage;