import React, { FunctionComponent, useState } from "react"; import { View, ActivityIndicator } from "react-native"; import { ListUsersDocument, useCreateUsersMutation } from "../../../generated/graphql"; import {ChipComponent} from "../../shared/ChipComponent"; import {TextInputComponent} from "../../shared/InputComponent"; import {NblocksModalComponent} from "../../shared/NblocksModalComponent"; import {SubmitCancelButtonsComponent} from "../../shared/SubmitCancelButtonsComponent"; import {SubTitleComponent} from "../../shared/SubTitleComponent"; import {TitleComponent} from "../../shared/TitleComponent"; const AddUserModalComponent:FunctionComponent<{ visible: boolean, onCloseModal: () => void }> = ({visible, onCloseModal}) => { const [username, setUsername] = useState(""); const [usernames, setUsernames] = useState([]); const [createUserMutation, {loading}] = useCreateUsersMutation({refetchQueries: [{query: ListUsersDocument}]}); const createUsers = () => { if (username != "") addUsername(); createUserMutation({variables: {userNames: usernames}}); resetAndCloseModal(); } const addUsername = () => { if (username.trim().length > 0 && !usernames.includes(username)) { setUsernames([username, ...usernames]); } setUsername(""); } const removeUsername = (username: string) => { setUsernames(usernames.filter((name) => name !== username)); } const resetAndCloseModal = () => { setUsername(""); setUsernames([]); onCloseModal(); } if (loading) { return ( ); } return ( resetAndCloseModal()}> Invite users addUsername()} onChangeText={ (text) => { setUsername(text) } } /> {usernames.length > 0 && Ready to invite (Tap to remove): {usernames.map((name, index) => ( removeUsername(name)}> {name} ) )} } createUsers()} onCancel={() => resetAndCloseModal()} > ) } export {AddUserModalComponent};