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"; import Spinner from "components/Spinner"; const baseClass = "create-team-modal"; interface ICreateTeamModalProps { onCancel: () => void; onSubmit: (formData: ITeamFormData) => void; backendValidators: { [key: string]: string }; isLoading: boolean; } const CreateTeamModal = ({ onCancel, onSubmit, backendValidators, isLoading, }: 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) => { evt.preventDefault(); onSubmit({ name, }); }, [onSubmit, name] ); return ( {isLoading ? ( ) : (

Need to test queries and configurations before deploying?

A popular pattern is to end a team’s name with “- Sandbox”, then you can use this to test new queries and configuration with staging hosts or volunteers acting as canaries.

)}
); }; export default CreateTeamModal;