import { useState } from 'react'; import { Button, Icon, Modal, ModalTrigger, useToasts, Text, Flexbox } from 'react-basics'; import EmptyPlaceholder from 'components/common/EmptyPlaceholder'; import TeamAddForm from 'components/pages/settings/teams/TeamAddForm'; import PageHeader from 'components/layout/PageHeader'; import TeamsTable from 'components/pages/settings/teams/TeamsTable'; import Page from 'components/layout/Page'; import Icons from 'components/icons'; import TeamJoinForm from './TeamJoinForm'; import useApi from 'hooks/useApi'; import useMessages from 'hooks/useMessages'; import { ROLES } from 'lib/constants'; import useUser from 'hooks/useUser'; export default function TeamsList() { const { user } = useUser(); const { formatMessage, labels, messages } = useMessages(); const [update, setUpdate] = useState(0); const { get, useQuery } = useApi(); const { data, isLoading, error } = useQuery(['teams', update], () => get(`/teams`)); const hasData = data && data.length !== 0; const { showToast } = useToasts(); const handleSave = () => { setUpdate(state => state + 1); showToast({ message: formatMessage(messages.saved), variant: 'success' }); }; const handleJoin = () => { setUpdate(state => state + 1); showToast({ message: formatMessage(messages.saved), variant: 'success' }); }; const handleDelete = () => { setUpdate(state => state + 1); showToast({ message: formatMessage(messages.saved), variant: 'success' }); }; const joinButton = ( {close => } ); const createButton = ( <> {user.role !== ROLES.viewOnly && ( {close => } )} ); return ( {hasData && ( {joinButton} {createButton} )} {hasData && } {!hasData && ( {joinButton} {createButton} )} ); }