diff --git a/apps/web/src/components/domains/domain-availability-panel.tsx b/apps/web/src/components/domains/domain-availability-panel.tsx index e452acc..71fff12 100644 --- a/apps/web/src/components/domains/domain-availability-panel.tsx +++ b/apps/web/src/components/domains/domain-availability-panel.tsx @@ -18,20 +18,6 @@ import { LoadingButton } from '@/components/loading-button' import { ConfirmDialog } from '@/components/confirm-dialog' import { QueryState } from '@/components/query-state' import { TableSkeleton } from '@/components/skeletons' -import { - AppField, - AppFieldGroup, - AppFieldLabel, -} from '@/components/app-field' -import { AppInput } from '@/components/app-input' -import { - AppItem, - AppItemActions, - AppItemContent, - AppItemGroup, - AppItemSeparator, - AppItemTitle, -} from '@/components/app-item' import { Frame, FrameDescription, @@ -40,6 +26,16 @@ import { FrameTitle, } from '@/components/reui/frame' import { Button } from '@cfdm/ui/components/button' +import { Field, FieldGroup, FieldLabel } from '@cfdm/ui/components/field' +import { Input } from '@cfdm/ui/components/input' +import { + Item, + ItemActions, + ItemContent, + ItemGroup, + ItemSeparator, + ItemTitle, +} from '@cfdm/ui/components/item' import { Select, SelectContent, @@ -178,21 +174,19 @@ export function DomainAvailabilityPanel({ createMutation.mutate() }} > - - - - Hostname - - + + Hostname + setHostname(e.target.value)} autoComplete="off" /> - - - Тип + + + Тип - + Добавить - + @@ -251,14 +245,14 @@ export function DomainAvailabilityPanel({ description="Добавьте hostname для проверки доступности" /> ) : ( - + {monitors.map((monitor, index) => (
- - - + + + {monitor.hostname} - +
{monitorTypeLabel(monitor.type)} @@ -271,8 +265,8 @@ export function DomainAvailabilityPanel({ Ещё не проверялся )}
-
- + + } /> - -
- {index < monitors.length - 1 ? ( - - ) : null} + + + {index < monitors.length - 1 ? : null}
))} -
+ )} diff --git a/apps/web/src/components/domains/domains-bulk-toolbar.tsx b/apps/web/src/components/domains/domains-bulk-toolbar.tsx index 230ce44..d9d3679 100644 --- a/apps/web/src/components/domains/domains-bulk-toolbar.tsx +++ b/apps/web/src/components/domains/domains-bulk-toolbar.tsx @@ -1,4 +1,6 @@ import { useState } from 'react' +import { Badge } from '@/components/reui/badge' +import { Frame, FramePanel } from '@/components/reui/frame' import { Button } from '@cfdm/ui/components/button' import { Select, @@ -42,89 +44,97 @@ export function DomainsBulkToolbar({ ] return ( -
- - Выбрано: {count} - - - - - - setTag(e.target.value)} - /> - - -
+ + + + {count} выбрано + + + + + + setTag(e.target.value)} + /> + + + + ) } diff --git a/apps/web/src/routes/_auth/domains/$domainId/index.tsx b/apps/web/src/routes/_auth/domains/$domainId/index.tsx index fad07cd..dc0bb3d 100644 --- a/apps/web/src/routes/_auth/domains/$domainId/index.tsx +++ b/apps/web/src/routes/_auth/domains/$domainId/index.tsx @@ -24,6 +24,7 @@ import { useDomainPage } from '@/hooks/use-domain-page' import type { SubdomainTableRow } from '@/hooks/use-domain-page' import { PageShell } from '@/components/page-shell' import { QueryState } from '@/components/query-state' +import { CountedLineTabs } from '@/components/counted-line-tabs' import { DetailPanel, ResourcePage } from '@/components/reui-kit' import { SUBDOMAIN_TABS, @@ -53,12 +54,7 @@ import { SelectTrigger, SelectValue, } from '@cfdm/ui/components/select' -import { - Tabs, - TabsContent, - TabsList, - TabsTrigger, -} from '@cfdm/ui/components/tabs' +import { TabsContent } from '@cfdm/ui/components/tabs' export const Route = createFileRoute('/_auth/domains/$domainId/')({ loader: async ({ context: { queryClient }, params }) => { @@ -327,50 +323,26 @@ function DomainOverviewPage() { actions={headerActions} /> - - - - Обзор - - - DNS - - - Доступность - - - Поддомены - - {subdomainRows.length} - - - - Привязки - - {bindings.length} - - - - - - ({ ...tab }))} - tabFilter={subdomainTabFilter} - filterFields={filterFields} - filters={filters} - onFiltersChange={setFilters} - onClearFilters={() => - setFilters(createDefaultSubdomainFilters()) - } - getFilterFieldValue={subdomainFilterFieldValue} - columns={columns} - data={subdomainRows} - getRowId={(row) => String(row.subdomain.id)} - toolbarExtra={ + ({ ...tab }))} + tabFilter={subdomainTabFilter} + filterFields={filterFields} + filters={filters} + onFiltersChange={setFilters} + onClearFilters={() => + setFilters(createDefaultSubdomainFilters()) + } + getFilterFieldValue={subdomainFilterFieldValue} + columns={columns} + data={subdomainRows} + getRowId={(row) => String(row.subdomain.id)} + toolbarExtra={ + + } + emptyState={{ + title: 'Поддомены не созданы', + description: 'Добавьте поддомен для привязки сервисов', + action: ( - } - emptyState={{ - title: 'Поддомены не созданы', - description: 'Добавьте поддомен для привязки сервисов', - action: ( - - ), - }} - /> - + ), + }} + /> - - - + - + }> К группам ) + const metricCards = useMemo(() => { + if (!group) return [] + return [ + { + id: 'domains', + icon: