From 8e9eb6e1f56a1299a4c3b2c739a7151b323c2c63 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 21 Jul 2026 12:22:35 +0200 Subject: [PATCH] feat(webui): centralize contextual table actions --- webui/src/components/table/DataGrid.tsx | 116 ++++++++---------- .../src/components/table/TableActionGroup.tsx | 80 ++++++++++++ webui/src/index.ts | 2 + webui/src/styles/badges.css | 2 +- webui/src/styles/components.css | 43 +++++-- webui/src/styles/forms.css | 17 ++- webui/src/styles/tables.css | 22 +++- webui/tests/data-grid-actions.test.tsx | 30 +++++ webui/tsconfig.component-tests.json | 3 +- 9 files changed, 226 insertions(+), 89 deletions(-) create mode 100644 webui/src/components/table/TableActionGroup.tsx diff --git a/webui/src/components/table/DataGrid.tsx b/webui/src/components/table/DataGrid.tsx index 64ba572..812fcc2 100644 --- a/webui/src/components/table/DataGrid.tsx +++ b/webui/src/components/table/DataGrid.tsx @@ -2,7 +2,7 @@ import { forwardRef, useEffect, useLayoutEffect, useMemo, useRef, useState, type import { createPortal } from "react-dom"; import { ArrowDown, ArrowUp, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, ChevronsUpDown, Filter, GripVertical, Plus, Trash2, X } from "lucide-react"; import StatusBadge from "../StatusBadge"; -import Button from "../Button"; +import TableActionGroup from "./TableActionGroup"; import { usePlatformLanguage, i18nMessage } from "../../i18n/LanguageContext"; export type DataGridSortDirection = "asc" | "desc"; @@ -852,58 +852,44 @@ export function DataGridRowActions({ moveUpLabel = "i18n:govoplan-core.move_row_up.b4715a19", moveDownLabel = "i18n:govoplan-core.move_row_down.8e2b5957" }: DataGridRowActionsProps) { - const { translateText } = usePlatformLanguage(); - const translatedAddLabel = translateText(addLabel); - const translatedRemoveLabel = translateText(removeLabel); - const translatedMoveUpLabel = translateText(moveUpLabel); - const translatedMoveDownLabel = translateText(moveDownLabel); return ( -
- - - - -
); +