import { useEffect, useState } from 'react'; import { useLingui } from '@lingui/react/macro'; import { useSearchParams } from 'react-router'; import { useLocation } from 'react-router'; import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value'; import { Input } from '@documenso/ui/primitives/input'; import { TeamCreateDialog } from '~/components/dialogs/team-create-dialog'; import { SettingsHeader } from '~/components/general/settings-header'; import { OrganisationTeamsTable } from '~/components/tables/organisation-teams-table'; export default function OrganisationSettingsTeamsPage() { const { t } = useLingui(); const [searchParams, setSearchParams] = useSearchParams(); const { pathname } = useLocation(); const [searchQuery, setSearchQuery] = useState(() => searchParams?.get('query') ?? ''); const debouncedSearchQuery = useDebouncedValue(searchQuery, 500); /** * 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 (