fix(super-admin): убрать «моргание» при клике на орг — переход теперь по double-click
Some checks are pending
Some checks are pending
В списке организаций SuperAdmin одиночный клик навигировал на /super-admin/organizations/{id} и страница успевала отрисоваться → визуальное моргание. Изменил поведение:
- DataTable теперь поддерживает onRowDoubleClick параллельно onRowClick.
- SuperAdminOrganizationsPage: убран single-click navigate; double-click → setOrgOverride + переход на /dashboard этой орги (вход в её личный кабинет).
- Кнопки в колонке действий не задеты — у них уже stopPropagation.
This commit is contained in:
parent
a54315bd6e
commit
36b4fb1b31
|
|
@ -18,6 +18,7 @@ interface DataTableProps<T> {
|
|||
columns: Column<T>[]
|
||||
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<T> {
|
|||
}
|
||||
|
||||
export function DataTable<T>({
|
||||
rows, columns, rowKey, onRowClick, empty, isLoading, scrollable = true,
|
||||
rows, columns, rowKey, onRowClick, onRowDoubleClick, empty, isLoading, scrollable = true,
|
||||
sortKey, sortOrder, onSortChange,
|
||||
}: DataTableProps<T>) {
|
||||
const handleHeaderClick = (key: string) => {
|
||||
|
|
@ -95,8 +96,11 @@ export function DataTable<T>({
|
|||
<tr
|
||||
key={rowKey(row)}
|
||||
onClick={() => 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) => (
|
||||
|
|
|
|||
|
|
@ -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) => (
|
||||
<div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue