import AccountPermissions from "@dashboard/components/AccountPermissions"; import { TopNav } from "@dashboard/components/AppLayout/TopNav"; import { Backlink } from "@dashboard/components/Backlink"; import Form from "@dashboard/components/Form"; import { DetailPageLayout } from "@dashboard/components/Layouts"; import Savebar from "@dashboard/components/Savebar"; import { PermissionEnum, PermissionGroupErrorFragment, } from "@dashboard/graphql"; import { SubmitPromise } from "@dashboard/hooks/useForm"; import useNavigator from "@dashboard/hooks/useNavigator"; import { sectionNames } from "@dashboard/intl"; import { permissionGroupListUrl } from "@dashboard/permissionGroups/urls"; import { getFormErrors } from "@dashboard/utils/errors"; import getPermissionGroupErrorMessage from "@dashboard/utils/errors/permissionGroups"; import { ConfirmButtonTransitionState } from "@saleor/macaw-ui"; import React from "react"; import { useIntl } from "react-intl"; import { PermissionData } from "../PermissionGroupDetailsPage"; import PermissionGroupInfo from "../PermissionGroupInfo"; export interface PermissionGroupCreateFormData { name: string; hasFullAccess: boolean; isActive: boolean; permissions: PermissionEnum[]; } const initialForm: PermissionGroupCreateFormData = { hasFullAccess: false, isActive: false, name: "", permissions: [], }; export interface PermissionGroupCreatePageProps { disabled: boolean; errors: PermissionGroupErrorFragment[]; permissions: PermissionData[]; saveButtonBarState: ConfirmButtonTransitionState; onSubmit: (data: PermissionGroupCreateFormData) => SubmitPromise; } const PermissionGroupCreatePage: React.FC = ({ disabled, permissions, onSubmit, saveButtonBarState, errors, }) => { const intl = useIntl(); const navigate = useNavigator(); const formErrors = getFormErrors(["addPermissions"], errors || []); const permissionsError = getPermissionGroupErrorMessage( formErrors.addPermissions, intl, ); return (
{({ data, change, submit, isSaveDisabled }) => ( {intl.formatMessage(sectionNames.permissionGroups)} navigate(permissionGroupListUrl())} onSubmit={submit} state={saveButtonBarState} disabled={isSaveDisabled} /> )}
); }; PermissionGroupCreatePage.displayName = "PermissionGroupCreatePage"; export default PermissionGroupCreatePage;