From 07047f9984e0879b21999fc0e5edfb2f4d4c8ca8 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 16 Nov 2025 22:15:23 +0100 Subject: [PATCH] . --- .../datatable/data-table-toolbar.tsx | 141 ++++++++---------- .../src/components/datatable/data-table.tsx | 2 +- 2 files changed, 66 insertions(+), 77 deletions(-) diff --git a/packages/rdx-ui/src/components/datatable/data-table-toolbar.tsx b/packages/rdx-ui/src/components/datatable/data-table-toolbar.tsx index 3d3ae3a9..4440c320 100644 --- a/packages/rdx-ui/src/components/datatable/data-table-toolbar.tsx +++ b/packages/rdx-ui/src/components/datatable/data-table-toolbar.tsx @@ -1,12 +1,26 @@ -import { Button, Separator, Tooltip, TooltipContent, TooltipTrigger } from '@repo/shadcn-ui/components' -import { cn } from '@repo/shadcn-ui/lib/utils' -import { Table } from "@tanstack/react-table" -import { ArrowDownIcon, ArrowUpIcon, CopyPlusIcon, PlusIcon, ScanIcon, TrashIcon } from 'lucide-react' -import React from 'react' -import { useTranslation } from "../../locales/i18n.ts" -import { DataTableViewOptions } from './data-table-view-options.tsx' -import { DataTableMeta } from './data-table.tsx' +import { + Button, + Separator, + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@repo/shadcn-ui/components"; +import { cn } from "@repo/shadcn-ui/lib/utils"; +import type { Table } from "@tanstack/react-table"; +import { + ArrowDownIcon, + ArrowUpIcon, + CopyPlusIcon, + PlusIcon, + ScanIcon, + TrashIcon, +} from "lucide-react"; +import React from "react"; +import { useTranslation } from "../../locales/i18n.ts"; + +import type { DataTableMeta } from "./data-table.tsx"; +import { DataTableViewOptions } from "./data-table-view-options.tsx"; interface DataTableToolbarProps { table: Table; @@ -17,7 +31,7 @@ interface DataTableToolbarProps { export function DataTableToolbar({ table, showViewOptions = true, - className + className, }: DataTableToolbarProps) { const { t } = useTranslation(); const meta = table.options.meta as DataTableMeta | undefined; @@ -32,10 +46,7 @@ export function DataTableToolbar({ const hasSelection = selectedCount > 0; // Índices seleccionados (memoizado) - const selectedIndexes = React.useMemo( - () => selectedRows.map((r) => r.index), - [selectedRows] - ); + const selectedIndexes = React.useMemo(() => selectedRows.map((r) => r.index), [selectedRows]); const handleAdd = React.useCallback(() => { if (!readOnly) meta?.tableOps?.onAdd?.(table); @@ -63,25 +74,20 @@ export function DataTableToolbar({ // Render principal return ( -
+
{/* IZQUIERDA: acciones + contador */}
{/* Botón añadir */} {!readOnly && meta?.tableOps?.onAdd && ( )} @@ -89,18 +95,18 @@ export function DataTableToolbar({ {/* Acciones sobre selección */} {hasSelection && ( <> - + {!readOnly && meta?.bulkOps?.duplicateSelected && ( )} @@ -109,18 +115,16 @@ export function DataTableToolbar({ - - {t("components.datatable.actions.move_up")} - + {t("components.datatable.actions.move_up")} )} @@ -128,71 +132,56 @@ export function DataTableToolbar({ - - {t("components.datatable.actions.move_down")} - + {t("components.datatable.actions.move_down")} )} {!readOnly && meta?.bulkOps?.removeSelected && ( <> - + )} - + - - - {t("components.datatable.actions.clear_selection")} - + {t("components.datatable.actions.clear_selection")} )} {/* Contador de selección */} -
+
{hasSelection ? t("components.datatable.selection_summary", { - count: selectedCount, - total: totalCount, - }) + count: selectedCount, + total: totalCount, + }) : t("components.datatable.selection_none", { total: totalCount })}
@@ -205,4 +194,4 @@ export function DataTableToolbar({ ); } -export const MemoizedDataTableToolbar = React.memo(DataTableToolbar) as typeof DataTableToolbar; \ No newline at end of file +export const MemoizedDataTableToolbar = React.memo(DataTableToolbar) as typeof DataTableToolbar; diff --git a/packages/rdx-ui/src/components/datatable/data-table.tsx b/packages/rdx-ui/src/components/datatable/data-table.tsx index 9ad95136..8e4e1246 100644 --- a/packages/rdx-ui/src/components/datatable/data-table.tsx +++ b/packages/rdx-ui/src/components/datatable/data-table.tsx @@ -189,7 +189,7 @@ export function DataTable({
{/* CABECERA */} - + {table.getHeaderGroups().map((hg) => ( {hg.headers.map((h) => {