diff --git a/apps/web/src/components/modules/modules-list-grid.tsx b/apps/web/src/components/modules/modules-list-grid.tsx index 6ab7302..94945dd 100644 --- a/apps/web/src/components/modules/modules-list-grid.tsx +++ b/apps/web/src/components/modules/modules-list-grid.tsx @@ -17,8 +17,8 @@ import type { ModuleRow } from '@/types/api' const MODULE_TABS = [ { id: 'all', label: 'Все' }, - { id: 'enabled', label: 'Вкл' }, - { id: 'disabled', label: 'Выкл' }, + { id: 'enabled', label: 'Включённые' }, + { id: 'disabled', label: 'Выключенные' }, ] const TYPE_OPTIONS = [ @@ -66,7 +66,7 @@ function tabFilter(item: ModuleRow, tabId: string): boolean { export function ModulesListGrid({ items, isLoading = false, - title = 'Все модули', + title = 'Маршрутные модули', actions, }: { items: ModuleRow[] @@ -130,7 +130,7 @@ export function ModulesListGrid({ return ( {label} -
{children}
+
{children}
) } @@ -401,7 +401,7 @@ export function Segmented({ }) { return ( onChange(Number(v))} aria-label={label} className="max-w-full"> - + {options.map((o, i) => ( {o} @@ -424,7 +424,7 @@ export function PendingChip({ mark }: { mark: 'new' | 'dirty' | 'deleted' }) { /** Вкладки страницы как на досках: линия-подчёркивание, число — мелким индексом. */ export function PageTabsList({ children }: { children: ReactNode }) { return ( - + {children} ) diff --git a/apps/web/src/components/reui-kit/frame-data-grid.tsx b/apps/web/src/components/reui-kit/frame-data-grid.tsx index 2ae656e..5a6ba03 100644 --- a/apps/web/src/components/reui-kit/frame-data-grid.tsx +++ b/apps/web/src/components/reui-kit/frame-data-grid.tsx @@ -19,6 +19,7 @@ import { import { Columns3Icon } from 'lucide-react' import { Button } from '@evobgp/ui/components/button' +import { Separator } from '@evobgp/ui/components/separator' import { cn } from '@evobgp/ui/lib/utils' import { DataGrid, @@ -40,6 +41,7 @@ import { DataGridTableVirtual } from '@/components/reui/data-grid/data-grid-tabl import { Frame, FrameDescription, + FrameFooter, FrameHeader, FramePanel, FrameTitle, @@ -315,7 +317,13 @@ function FrameDataGridBody({ )} {showPagination ? ( <> - + + + + Показано {table.getRowModel().rows.length} из {data.length} + + + ) : null} diff --git a/apps/web/src/components/reui-kit/resource-page.tsx b/apps/web/src/components/reui-kit/resource-page.tsx index 48c241b..8c7d883 100644 --- a/apps/web/src/components/reui-kit/resource-page.tsx +++ b/apps/web/src/components/reui-kit/resource-page.tsx @@ -23,12 +23,12 @@ import { DataGridScrollArea } from '@/components/reui/data-grid/data-grid-scroll import { DataGridTable } from '@/components/reui/data-grid/data-grid-table' import { DataGridTableRowExpand } from '@/components/reui/data-grid/data-grid-table' import { Filters } from '@/components/reui/filters/filters' -import { SegmentedControl } from '@/components/portal/data-page' import { flattenFilterConditions } from '@/components/reui/filters/filters-query' import type { FilterField, FilterQuery } from '@/components/reui/filters/filters-types' import { Frame, FrameDescription, + FrameFooter, FrameHeader, FramePanel, FrameTitle, @@ -40,7 +40,9 @@ import { InputGroupAddon, InputGroupInput, } from '@evobgp/ui/components/input-group' +import { Separator } from '@evobgp/ui/components/separator' import { Skeleton } from '@evobgp/ui/components/skeleton' +import { Tabs, TabsList, TabsTrigger } from '@evobgp/ui/components/tabs' import { DATA_GRID_I18N_RU } from '@/lib/reui-i18n-ru' import { FILTERS_LABELS_RU, FILTERS_OPERATOR_LABELS_RU } from '@/lib/filters-i18n' import { @@ -538,92 +540,75 @@ function ResourcePageFiltered({ tableClassNames={kitDataGridTableClassNames} > - {!hideHeader ? ( - -
+ + {!hideHeader ? ( +
{title} {description ? ( - - {description} - + {description} ) : null}
- {headerActions ? ( -
- {headerActions} -
- ) : null} -
- ) : null} + ) : ( +
+ )} + {headerActions ?
{headerActions}
: null} + {toolbarExtra} + {showFiltersPopover ? ( + +