Merge branch 'main' into feat/add-pdf-image-renderer

This commit is contained in:
David Nguyen
2026-02-04 12:50:40 +11:00
committed by GitHub
125 changed files with 7880 additions and 938 deletions
+22 -2
View File
@@ -4,6 +4,7 @@ import { Trans } from '@lingui/react/macro';
import type {
ColumnDef,
PaginationState,
RowSelectionState,
Table as TTable,
Updater,
VisibilityState,
@@ -15,7 +16,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '.
export type DataTableChildren<TData> = (_table: TTable<TData>) => React.ReactNode;
export type { ColumnDef as DataTableColumnDef } from '@tanstack/react-table';
export type { ColumnDef as DataTableColumnDef, RowSelectionState } from '@tanstack/react-table';
export interface DataTableProps<TData, TValue> {
columns: ColumnDef<TData, TValue>[];
@@ -40,6 +41,10 @@ export interface DataTableProps<TData, TValue> {
enable: boolean;
component?: React.ReactNode;
};
enableRowSelection?: boolean;
rowSelection?: RowSelectionState;
onRowSelectionChange?: (selection: RowSelectionState) => void;
getRowId?: (row: TData) => string;
}
export function DataTable<TData, TValue>({
@@ -58,6 +63,10 @@ export function DataTable<TData, TValue>({
rowClassName,
children,
emptyState,
enableRowSelection,
rowSelection,
onRowSelectionChange,
getRowId,
}: DataTableProps<TData, TValue>) {
const pagination = useMemo<PaginationState>(() => {
if (currentPage !== undefined && perPage !== undefined) {
@@ -85,6 +94,13 @@ export function DataTable<TData, TValue>({
}
};
const onTableRowSelectionChange = (updater: Updater<RowSelectionState>) => {
if (onRowSelectionChange) {
const newSelection = typeof updater === 'function' ? updater(rowSelection ?? {}) : updater;
onRowSelectionChange(newSelection);
}
};
const table = useReactTable({
data,
columns,
@@ -92,10 +108,14 @@ export function DataTable<TData, TValue>({
state: {
pagination: manualPagination ? pagination : undefined,
columnVisibility,
rowSelection: rowSelection ?? {},
},
manualPagination,
pageCount: totalPages,
onPaginationChange: onTablePaginationChange,
enableRowSelection,
onRowSelectionChange: onTableRowSelectionChange,
getRowId,
});
return (
@@ -162,7 +182,7 @@ export function DataTable<TData, TValue>({
{hasFilters && onClearFilters !== undefined && (
<button
onClick={() => onClearFilters()}
className="text-foreground mt-1 text-sm"
className="mt-1 text-sm text-foreground"
>
<Trans>Clear filters</Trans>
</button>
@@ -753,7 +753,7 @@ export const AddFieldsFormPartial = ({
)}
>
<Contact className="h-4 w-4" />
Initials
<Trans>Initials</Trans>
</p>
</CardContent>
</Card>
@@ -903,7 +903,7 @@ export const AddFieldsFormPartial = ({
)}
>
<Disc className="h-4 w-4" />
Radio
<Trans>Radio</Trans>
</p>
</CardContent>
</Card>
@@ -928,8 +928,7 @@ export const AddFieldsFormPartial = ({
)}
>
<CheckSquare className="h-4 w-4" />
{/* Not translated on purpose. */}
Checkbox
<Trans>Checkbox</Trans>
</p>
</CardContent>
</Card>
+2 -1
View File
@@ -1,3 +1,4 @@
import { Trans } from '@lingui/react/macro';
import { FieldType } from '@prisma/client';
import {
CalendarDays,
@@ -115,7 +116,7 @@ export const FieldSelector = ({
{field.type === FieldType.SIGNATURE && (
<div className="text-muted-foreground font-signature absolute inset-0 flex items-center justify-center text-lg">
Signature
<Trans>Signature</Trans>
</div>
)}
</CardContent>
@@ -797,7 +797,7 @@ export const AddTemplateFieldsFormPartial = ({
)}
>
<Contact className="h-4 w-4" />
Initials
<Trans>Initials</Trans>
</p>
</CardContent>
</Card>
@@ -953,7 +953,7 @@ export const AddTemplateFieldsFormPartial = ({
)}
>
<Disc className="h-4 w-4" />
Radio
<Trans>Radio</Trans>
</p>
</CardContent>
</Card>
@@ -979,8 +979,7 @@ export const AddTemplateFieldsFormPartial = ({
)}
>
<CheckSquare className="h-4 w-4" />
{/* Not translated on purpose. */}
Checkbox
<Trans>Checkbox</Trans>
</p>
</CardContent>
</Card>