import React, { useState, useCallback, useEffect } from "react"; import { ITeamFormData } from "services/entities/teams"; import Modal from "components/Modal"; import Button from "components/buttons/Button"; import InfoBanner from "components/InfoBanner/InfoBanner"; // @ts-ignore import InputField from "components/forms/fields/InputField"; const baseClass = "create-team-modal"; interface ICreateTeamModalProps { onCancel: () => void; onSubmit: (formData: ITeamFormData) => void; backendValidators: { [key: string]: string }; isUpdatingTeams: boolean; } const CreateTeamModal = ({ onCancel, onSubmit, backendValidators, isUpdatingTeams, }: ICreateTeamModalProps): JSX.Element => { const [name, setName] = useState(""); const [errors, setErrors] = useState<{ [key: string]: string }>( backendValidators ); useEffect(() => { setErrors(backendValidators); }, [backendValidators]); const onInputChange = useCallback( (value: string) => { setName(value); setErrors({}); }, [setName] ); const onFormSubmit = useCallback( (evt: any) => { evt.preventDefault(); onSubmit({ name: name.trim(), }); }, [onSubmit, name] ); return (
{ setName(name.trim()); }} label="Team name" placeholder="Workstations" value={name} error={errors.name} ignore1password /> To organize your hosts, create a team, like “Workstations,” “Servers,” or “Servers (canary)”.
); }; export default CreateTeamModal;