import Typography from "@material-ui/core/Typography"; import { FormChange } from "@saleor/hooks/useForm"; import { SearchPermissionGroups_search_edges_node } from "@saleor/searches/types/SearchPermissionGroups"; import { StaffErrorFragment } from "@saleor/staff/types/StaffErrorFragment"; import { FetchMoreProps, SearchPageProps } from "@saleor/types"; import { getFormErrors } from "@saleor/utils/errors"; import getStaffErrorMessage from "@saleor/utils/errors/staff"; import React from "react"; import { useIntl } from "react-intl"; import MultiAutocompleteSelectField, { MultiAutocompleteChoiceType } from "../MultiAutocompleteSelectField"; export interface AccountPermissionGroupsProps extends FetchMoreProps, SearchPageProps { formData: { permissionGroups: string[]; }; disabled: boolean; errors: StaffErrorFragment[]; availablePermissionGroups: SearchPermissionGroups_search_edges_node[]; onChange: FormChange; displayValues: MultiAutocompleteChoiceType[]; } const AccountPermissionGroups: React.FC = props => { const { availablePermissionGroups, disabled, displayValues, errors, formData, hasMore, loading, onChange, onFetchMore, onSearchChange } = props; const intl = useIntl(); const choices = availablePermissionGroups?.map(pg => ({ disabled: !pg.userCanManage, label: pg.name, value: pg.id })); const formErrors = getFormErrors(["addGroups", "removeGroups"], errors); return ( <> {!!formErrors.addGroups && ( {getStaffErrorMessage(formErrors.addGroups, intl)} )} {!!formErrors.removeGroups && ( {getStaffErrorMessage(formErrors.removeGroups, intl)} )} ); }; AccountPermissionGroups.displayName = "AccountPermissionGroups"; export default AccountPermissionGroups;