fleet/frontend/pages/admin/UserManagementPage/components/AddUserModal/AddUserModal.tsx
jacobshandling a4d501e67c
UI - Coordinate multiple error inputs to successfully display server errors as UserForm field errors (#25476)
## For #24948 


![ezgif-3-a357750dbe](https://github.com/user-attachments/assets/e3fdc103-df93-4286-af63-df87330c3f1d)

- [x] Changes file added for user-visible changes in `changes/`
- [x] A detailed QA plan exists on the associated ticket (if it isn't
there, work with the product group's QA engineer to add it)
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-01-16 13:23:00 -08:00

72 lines
1.8 KiB
TypeScript

import React from "react";
import { ITeam } from "interfaces/team";
import { IUserFormErrors, UserRole } from "interfaces/user";
import Modal from "components/Modal";
import UserForm from "../UserForm";
import { IUserFormData } from "../UserForm/UserForm";
interface IAddUserModalProps {
onCancel: () => void;
onSubmit: (formData: IUserFormData) => void;
defaultGlobalRole?: UserRole | null;
defaultTeamRole?: UserRole;
defaultTeams?: ITeam[];
availableTeams?: ITeam[];
isPremiumTier: boolean;
smtpConfigured: boolean;
sesConfigured: boolean;
currentTeam?: ITeam;
canUseSso: boolean; // corresponds to whether SSO is enabled for the organization
isModifiedByGlobalAdmin?: boolean | false;
isUpdatingUsers?: boolean | false;
addUserErrors: IUserFormErrors;
}
const baseClass = "add-user-modal";
const AddUserModal = ({
onCancel,
onSubmit,
currentTeam,
defaultGlobalRole,
defaultTeamRole,
defaultTeams,
availableTeams,
isPremiumTier,
smtpConfigured,
sesConfigured,
canUseSso,
isModifiedByGlobalAdmin,
isUpdatingUsers,
addUserErrors,
}: IAddUserModalProps): JSX.Element => {
return (
<Modal
title="Add user"
onExit={onCancel}
className={baseClass}
width="large"
>
<UserForm
ancestorErrors={addUserErrors}
defaultGlobalRole={defaultGlobalRole}
defaultTeamRole={defaultTeamRole}
defaultTeams={defaultTeams}
onCancel={onCancel}
onSubmit={onSubmit}
availableTeams={availableTeams || []}
isPremiumTier={isPremiumTier}
smtpConfigured={smtpConfigured}
sesConfigured={sesConfigured}
canUseSso={canUseSso}
isModifiedByGlobalAdmin={isModifiedByGlobalAdmin}
currentTeam={currentTeam}
isNewUser
isUpdatingUsers={isUpdatingUsers}
/>
</Modal>
);
};
export default AddUserModal;