import { useState } from 'react'; import { Button, Icon, Modal, ModalTrigger, useToast, Text, Flexbox } from 'react-basics'; import { useIntl } from 'react-intl'; import useApi from 'hooks/useApi'; 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 { labels, messages } from 'components/messages'; import Icons from 'components/icons'; import TeamJoinForm from './JoinTeamForm'; export default function TeamsList() { const { formatMessage } = useIntl(); 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 { toast, showToast } = useToast(); 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 = ( {close => } ); return ( {toast} {hasData && ( {joinButton} {createButton} )} {hasData && } {!hasData && ( {joinButton} {createButton} )} ); }