From 36b4fb1b3140b6c3adc90dd6b052a47b543723a9 Mon Sep 17 00:00:00 2001 From: nurdotnet <278048682+nurdotnet@users.noreply.github.com> Date: Sun, 3 May 2026 02:50:50 +0500 Subject: [PATCH] =?UTF-8?q?fix(super-admin):=20=D1=83=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=C2=AB=D0=BC=D0=BE=D1=80=D0=B3=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=C2=BB=20=D0=BF=D1=80=D0=B8=20=D0=BA=D0=BB=D0=B8=D0=BA?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B0=20=D0=BE=D1=80=D0=B3=20=E2=80=94=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20=D1=82=D0=B5=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D1=8C=20=D0=BF=D0=BE=20double-click?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В списке организаций SuperAdmin одиночный клик навигировал на /super-admin/organizations/{id} и страница успевала отрисоваться → визуальное моргание. Изменил поведение: - DataTable теперь поддерживает onRowDoubleClick параллельно onRowClick. - SuperAdminOrganizationsPage: убран single-click navigate; double-click → setOrgOverride + переход на /dashboard этой орги (вход в её личный кабинет). - Кнопки в колонке действий не задеты — у них уже stopPropagation. --- src/food-market.web/src/components/DataTable.tsx | 8 ++++++-- .../src/pages/SuperAdminOrganizationsPage.tsx | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) 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) => (