diff --git a/src/food-market.web/src/components/DataTable.tsx b/src/food-market.web/src/components/DataTable.tsx index e2f71ff..96cfc78 100644 --- a/src/food-market.web/src/components/DataTable.tsx +++ b/src/food-market.web/src/components/DataTable.tsx @@ -18,6 +18,7 @@ interface DataTableProps { columns: Column[] rowKey: (row: T) => string onRowClick?: (row: T) => void + onRowDoubleClick?: (row: T) => void empty?: ReactNode isLoading?: boolean /** If true (default), the table wraps itself in a scrollable container with a sticky thead. @@ -31,7 +32,7 @@ interface DataTableProps { } export function DataTable({ - rows, columns, rowKey, onRowClick, empty, isLoading, scrollable = true, + rows, columns, rowKey, onRowClick, onRowDoubleClick, empty, isLoading, scrollable = true, sortKey, sortOrder, onSortChange, }: DataTableProps) { const handleHeaderClick = (key: string) => { @@ -95,8 +96,11 @@ export function DataTable({ onRowClick?.(row)} + onDoubleClick={() => onRowDoubleClick?.(row)} className={cn( - onRowClick && 'cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800/30', + (onRowClick || onRowDoubleClick) && 'hover:bg-slate-50 dark:hover:bg-slate-800/30', + onRowDoubleClick && 'cursor-pointer select-none', + onRowClick && !onRowDoubleClick && 'cursor-pointer', )} > {columns.map((c, i) => ( diff --git a/src/food-market.web/src/pages/SuperAdminOrganizationsPage.tsx b/src/food-market.web/src/pages/SuperAdminOrganizationsPage.tsx index 807e32c..6f3aeae 100644 --- a/src/food-market.web/src/pages/SuperAdminOrganizationsPage.tsx +++ b/src/food-market.web/src/pages/SuperAdminOrganizationsPage.tsx @@ -92,7 +92,7 @@ export function SuperAdminOrganizationsPage() { sortKey={list.sortKey} sortOrder={list.sortOrder} onSortChange={list.setSort} - onRowClick={(r) => navigate(`/super-admin/organizations/${r.id}`)} + onRowDoubleClick={(r) => setOrgOverride({ id: r.id, name: r.name }, { redirectTo: '/dashboard' })} columns={[ { header: 'Название', cell: (r) => (