import { useEffect, useState } from 'react'; import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { Link, useSearchParams } from 'react-router'; import { useLocation } from 'react-router'; import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value'; import { trpc } from '@documenso/trpc/react'; import { Input } from '@documenso/ui/primitives/input'; import { Tabs, TabsList, TabsTrigger } from '@documenso/ui/primitives/tabs'; import { UserSettingsCurrentTeamsDataTable } from './user-settings-current-teams-table'; import { UserSettingsPendingTeamsDataTable } from './user-settings-pending-teams-table'; export const UserSettingsTeamsPageDataTable = () => { const { _ } = useLingui(); const [searchParams, setSearchParams] = useSearchParams(); const { pathname } = useLocation(); const [searchQuery, setSearchQuery] = useState(() => searchParams?.get('query') ?? ''); const debouncedSearchQuery = useDebouncedValue(searchQuery, 500); const currentTab = searchParams?.get('tab') === 'pending' ? 'pending' : 'active'; const { data } = trpc.team.findTeamsPending.useQuery( {}, { placeholderData: (previousData) => previousData, }, ); /** * Handle debouncing the search query. */ useEffect(() => { const params = new URLSearchParams(searchParams?.toString()); params.set('query', debouncedSearchQuery); if (debouncedSearchQuery === '') { params.delete('query'); } setSearchParams(params); }, [debouncedSearchQuery, pathname, searchParams]); return (
setSearchQuery(e.target.value)} placeholder={_(msg`Search`)} /> Active Pending {data && data.count > 0 && ( {data.count} )}
{currentTab === 'pending' ? ( ) : ( )}
); };