import {FieldValues, SubmitHandler, UseFormReturn} from 'react-hook-form'; import clsx from 'clsx'; import {ReactNode} from 'react'; import {Link} from 'react-router-dom'; import {useValueLists} from '../../http/value-lists'; import {FormTextField} from '../../ui/forms/input-field/text-field/text-field'; import {FormSwitch} from '../../ui/forms/toggle/switch'; import {FormFileSizeField} from '../../ui/forms/input-field/file-size-field'; import {LinkStyle} from '../../ui/buttons/external-link'; import {FormPermissionSelector} from '../../auth/ui/permission-selector'; import {Trans} from '../../i18n/trans'; import {FormChipField} from '../../ui/forms/input-field/chip-field/form-chip-field'; import {Item} from '../../ui/forms/listbox/item'; import {CrupdateResourceLayout} from '../crupdate-resource-layout'; import {useSettings} from '../../core/settings/use-settings'; interface Props { onSubmit: SubmitHandler; form: UseFormReturn; title: ReactNode; subTitle?: ReactNode; isLoading: boolean; avatarManager: ReactNode; resendEmailButton?: ReactNode; children?: ReactNode; } export function CrupdateUserForm({ onSubmit, form, title, subTitle, isLoading, avatarManager, resendEmailButton, children, }: Props) { const {require_email_confirmation} = useSettings(); const {data: valueLists} = useValueLists(['roles', 'permissions']); return (
{avatarManager}
{children} } /> } />
} > {resendEmailButton}
} description={ ( {parts} ), }} message="Total storage space all user uploads are allowed to take up. If left empty, this value will be inherited from any roles or subscriptions user has, or from 'Available space' setting in Uploading settings page." /> } /> } suggestions={valueLists?.roles} > {chip => ( {chip.name} )}
); }