diff --git a/apps/remix/app/components/tables/admin-organisation-overview-table.tsx b/apps/remix/app/components/tables/admin-organisation-overview-table.tsx index 41905a6fa..c54eafc73 100644 --- a/apps/remix/app/components/tables/admin-organisation-overview-table.tsx +++ b/apps/remix/app/components/tables/admin-organisation-overview-table.tsx @@ -3,10 +3,11 @@ import { useEffect, useMemo, useState, useTransition } from 'react'; import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { ChevronDownIcon, ChevronUpIcon, ChevronsUpDown, Loader } from 'lucide-react'; -import { Link, useSearchParams } from 'react-router'; +import { Link } from 'react-router'; import { useDebouncedValue } from '@documenso/lib/client-only/hooks/use-debounced-value'; import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; +import type { DateRange } from '@documenso/lib/types/search-params'; import type { DataTableColumnDef } from '@documenso/ui/primitives/data-table'; import { DataTable } from '@documenso/ui/primitives/data-table'; import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination'; @@ -31,6 +32,7 @@ type OrganisationOverviewTableProps = { page: number; sortBy: 'name' | 'createdAt' | 'signingVolume'; sortOrder: 'asc' | 'desc'; + dateRange: DateRange; }; export const AdminOrganisationOverviewTable = ({ @@ -40,11 +42,11 @@ export const AdminOrganisationOverviewTable = ({ page, sortBy, sortOrder, + dateRange, }: OrganisationOverviewTableProps) => { const { _, i18n } = useLingui(); const [isPending, startTransition] = useTransition(); - const [searchParams] = useSearchParams(); const updateSearchParams = useUpdateSearchParams(); const [searchString, setSearchString] = useState(''); const debouncedSearchString = useDebouncedValue(searchString, 1000); @@ -75,7 +77,7 @@ export const AdminOrganisationOverviewTable = ({
{row.getValue('name')} @@ -147,7 +149,7 @@ export const AdminOrganisationOverviewTable = ({ size: 120, }, ] satisfies DataTableColumnDef[]; - }, [sortOrder, sortBy]); + }, [sortOrder, sortBy, dateRange]); useEffect(() => { startTransition(() => { diff --git a/apps/remix/app/components/tables/organisation-insights-table.tsx b/apps/remix/app/components/tables/organisation-insights-table.tsx index 2503f48e5..bcb254a95 100644 --- a/apps/remix/app/components/tables/organisation-insights-table.tsx +++ b/apps/remix/app/components/tables/organisation-insights-table.tsx @@ -108,7 +108,7 @@ export const OrganisationInsightsTable = ({ size: 180, }, { - header: () => {_(msg`Documents Signed`)}, + header: () => {_(msg`Documents Completed`)}, accessorKey: 'signedDocumentCount', cell: ({ row }) => Number(row.getValue('signedDocumentCount')), size: 180, @@ -223,7 +223,7 @@ export const OrganisationInsightsTable = ({
diff --git a/apps/remix/app/routes/_authenticated+/admin+/organisation-insights._index.tsx b/apps/remix/app/routes/_authenticated+/admin+/organisation-insights._index.tsx index b7a08f155..ed2908be6 100644 --- a/apps/remix/app/routes/_authenticated+/admin+/organisation-insights._index.tsx +++ b/apps/remix/app/routes/_authenticated+/admin+/organisation-insights._index.tsx @@ -83,6 +83,7 @@ export default function Organisations({ loaderData }: Route.ComponentProps) { perPage={perPage} sortBy={sortBy} sortOrder={sortOrder} + dateRange={dateRange} /> diff --git a/packages/lib/server-only/admin/get-organisation-detailed-insights.ts b/packages/lib/server-only/admin/get-organisation-detailed-insights.ts index e69c7cccc..8ee0b662d 100644 --- a/packages/lib/server-only/admin/get-organisation-detailed-insights.ts +++ b/packages/lib/server-only/admin/get-organisation-detailed-insights.ts @@ -191,8 +191,8 @@ async function getUserInsights( : sql`COUNT(DISTINCT CASE WHEN td.id IS NOT NULL THEN d.id END)` ).as('documentCount'), (createdAtFrom - ? sql`COUNT(DISTINCT CASE WHEN r.id IS NOT NULL AND ts.id IS NOT NULL AND r."signedAt" >= ${createdAtFrom} AND r.role = 'SIGNER'::"RecipientRole" THEN r.id END)` - : sql`COUNT(DISTINCT CASE WHEN ts.id IS NOT NULL AND r.role = 'SIGNER'::"RecipientRole" THEN r.id END)` + ? sql`COUNT(DISTINCT CASE WHEN d.id IS NOT NULL AND td.id IS NOT NULL AND d.status = 'COMPLETED' AND d."createdAt" >= ${createdAtFrom} THEN d.id END)` + : sql`COUNT(DISTINCT CASE WHEN d.id IS NOT NULL AND td.id IS NOT NULL AND d.status = 'COMPLETED' THEN d.id END)` ).as('signedDocumentCount'), ]) .groupBy(['u.id', 'u.name', 'u.email', 'u.createdAt'])