diff --git a/frontend-modern/src/api/patrol.ts b/frontend-modern/src/api/patrol.ts index e20b33847..9f3836847 100644 --- a/frontend-modern/src/api/patrol.ts +++ b/frontend-modern/src/api/patrol.ts @@ -419,10 +419,9 @@ export async function dismissFinding( export async function reopenFinding( findingId: string, ): Promise<{ success: boolean; message: string }> { - return apiFetchJSON( - `/api/ai/patrol/suppressions/${encodeURIComponent(`finding_${findingId}`)}`, - { method: 'DELETE' }, - ); + return apiFetchJSON(`/api/ai/patrol/suppressions/${encodeURIComponent(`finding_${findingId}`)}`, { + method: 'DELETE', + }); } /** diff --git a/frontend-modern/src/components/Infrastructure/resourceDetailMappers.ts b/frontend-modern/src/components/Infrastructure/resourceDetailMappers.ts index adf635b2f..a61d934c6 100644 --- a/frontend-modern/src/components/Infrastructure/resourceDetailMappers.ts +++ b/frontend-modern/src/components/Infrastructure/resourceDetailMappers.ts @@ -521,7 +521,8 @@ const formatCustomSensorValue = (value: number, unit?: string): string => { }).format(value); const normalizedUnit = (unit || '').trim(); if (!normalizedUnit) return formatted; - if (normalizedUnit === '%' || normalizedUnit.startsWith('°')) return `${formatted}${normalizedUnit}`; + if (normalizedUnit === '%' || normalizedUnit.startsWith('°')) + return `${formatted}${normalizedUnit}`; return `${formatted} ${normalizedUnit}`; }; @@ -541,9 +542,7 @@ export const buildCustomSensorRows = (sensors?: HostSensorSummary) => .map((part) => part?.trim() ?? '') .join('\u0000') .localeCompare( - [b.group, b.subgroup, b.name] - .map((part) => part?.trim() ?? '') - .join('\u0000'), + [b.group, b.subgroup, b.name].map((part) => part?.trim() ?? '').join('\u0000'), ), ) .map((metric) => { diff --git a/frontend-modern/src/components/Settings/BrandingSettingsCard.tsx b/frontend-modern/src/components/Settings/BrandingSettingsCard.tsx index 4f9da5299..27415994f 100644 --- a/frontend-modern/src/components/Settings/BrandingSettingsCard.tsx +++ b/frontend-modern/src/components/Settings/BrandingSettingsCard.tsx @@ -36,10 +36,7 @@ export function brandLogoFormatForFile(file: Pick): Brand return null; } -export function brandingLogoPreview( - logoBase64: string, - logoFormat: BrandLogoFormat, -): string { +export function brandingLogoPreview(logoBase64: string, logoFormat: BrandLogoFormat): string { const value = logoBase64.trim(); if (!value) return ''; if (value.startsWith('data:image/')) return value; diff --git a/frontend-modern/src/components/Settings/NodeModalClusterMembersSection.tsx b/frontend-modern/src/components/Settings/NodeModalClusterMembersSection.tsx index 82963d65c..a213f8f81 100644 --- a/frontend-modern/src/components/Settings/NodeModalClusterMembersSection.tsx +++ b/frontend-modern/src/components/Settings/NodeModalClusterMembersSection.tsx @@ -97,19 +97,19 @@ export const NodeModalClusterMembersSection: Component diff --git a/frontend-modern/src/components/Settings/__tests__/DataHandlingPanel.test.tsx b/frontend-modern/src/components/Settings/__tests__/DataHandlingPanel.test.tsx index 1df64b9ce..de77fe857 100644 --- a/frontend-modern/src/components/Settings/__tests__/DataHandlingPanel.test.tsx +++ b/frontend-modern/src/components/Settings/__tests__/DataHandlingPanel.test.tsx @@ -56,10 +56,7 @@ describe('DataHandlingPanel', () => { '/settings/infrastructure', ); expect(screen.queryByText('Governed Resources')).not.toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Refresh' })).toHaveClass( - 'min-h-11', - 'sm:min-h-0', - ); + expect(screen.getByRole('button', { name: 'Refresh' })).toHaveClass('min-h-11', 'sm:min-h-0'); }); it('shows policy posture metrics once resources exist', () => { diff --git a/frontend-modern/src/components/Settings/__tests__/nodeModalModel.test.ts b/frontend-modern/src/components/Settings/__tests__/nodeModalModel.test.ts index bb07c721e..58e26a8fe 100644 --- a/frontend-modern/src/components/Settings/__tests__/nodeModalModel.test.ts +++ b/frontend-modern/src/components/Settings/__tests__/nodeModalModel.test.ts @@ -21,10 +21,7 @@ const endpoint = (nodeName: string, ipOverride?: string): ClusterEndpoint => ({ describe('cluster node display-name overrides', () => { it('writes immutable identities, permits duplicate labels, and sends an empty clear', () => { - const endpoints = [ - { ...endpoint('pve1'), displayName: 'Compute' }, - endpoint('pve2'), - ]; + const endpoints = [{ ...endpoint('pve1'), displayName: 'Compute' }, endpoint('pve2')]; expect( buildClusterNodeDisplayNameOverridesPayload(endpoints, { 'cluster-pve1': '', diff --git a/frontend-modern/src/components/Settings/useInfrastructureConfiguredNodesState.ts b/frontend-modern/src/components/Settings/useInfrastructureConfiguredNodesState.ts index 9cb1fcde1..eced6541f 100644 --- a/frontend-modern/src/components/Settings/useInfrastructureConfiguredNodesState.ts +++ b/frontend-modern/src/components/Settings/useInfrastructureConfiguredNodesState.ts @@ -295,14 +295,11 @@ export const useInfrastructureConfiguredNodesState = ({ await NodesAPI.updateNode(existingNode.id, nodeData as NodeConfig); // clusterEndpointOverrides is a write-only payload field: mirror it // onto the cached endpoints instead of spreading it onto the node. - const { - clusterEndpointOverrides, - clusterNodeDisplayNameOverrides, - ...nodePatch - } = nodeData as Partial & { - clusterEndpointOverrides?: ClusterEndpointOverridePayload[]; - clusterNodeDisplayNameOverrides?: ClusterNodeDisplayNameOverridePayload[]; - }; + const { clusterEndpointOverrides, clusterNodeDisplayNameOverrides, ...nodePatch } = + nodeData as Partial & { + clusterEndpointOverrides?: ClusterEndpointOverridePayload[]; + clusterNodeDisplayNameOverrides?: ClusterNodeDisplayNameOverridePayload[]; + }; setNodes( nodes().map((node) => { if (node.id !== existingNode.id) return node; diff --git a/frontend-modern/src/components/Settings/useSystemSettingsState.ts b/frontend-modern/src/components/Settings/useSystemSettingsState.ts index 3fa87146c..4e5ac318b 100644 --- a/frontend-modern/src/components/Settings/useSystemSettingsState.ts +++ b/frontend-modern/src/components/Settings/useSystemSettingsState.ts @@ -6,10 +6,7 @@ import { notificationStore } from '@/stores/notifications'; import { logger } from '@/utils/logger'; import { updateStore } from '@/stores/updates'; import { copyToClipboard } from '@/utils/clipboard'; -import { - loadRuntimeBranding, - updateDockerUpdateActionsSetting, -} from '@/stores/systemSettings'; +import { loadRuntimeBranding, updateDockerUpdateActionsSetting } from '@/stores/systemSettings'; import type { ReportBrandSettings } from '@/types/config'; import { BACKUP_INTERVAL_OPTIONS, diff --git a/frontend-modern/src/components/shared/Button.test.tsx b/frontend-modern/src/components/shared/Button.test.tsx index 6a9393213..4312d64dd 100644 --- a/frontend-modern/src/components/shared/Button.test.tsx +++ b/frontend-modern/src/components/shared/Button.test.tsx @@ -50,9 +50,7 @@ describe('Button', () => { expect(buttonModelSource).toContain('dangerOutline:'); expect(buttonModelSource).toContain('export const BUTTON_SIZE_CLASSES'); expect(buttonModelSource).toContain("xs: 'min-h-11 px-2.5 py-1 text-xs sm:min-h-0'"); - expect(buttonModelSource).toContain( - "mdCompact: 'min-h-11 px-3 py-2 text-sm sm:min-h-0'", - ); + expect(buttonModelSource).toContain("mdCompact: 'min-h-11 px-3 py-2 text-sm sm:min-h-0'"); expect(buttonModelSource).toContain("settingsAction: 'min-h-11 px-3 py-2 text-sm sm:min-h-9'"); expect(buttonModelSource).toContain( "settingsActionXs: 'min-h-11 px-3 py-2 text-xs sm:min-h-9'", diff --git a/frontend-modern/src/components/shared/SharedPrimitives.guardrails.test.ts b/frontend-modern/src/components/shared/SharedPrimitives.guardrails.test.ts index 554c26ad3..5263cf87d 100644 --- a/frontend-modern/src/components/shared/SharedPrimitives.guardrails.test.ts +++ b/frontend-modern/src/components/shared/SharedPrimitives.guardrails.test.ts @@ -8275,7 +8275,9 @@ describe('shared primitive guardrails', () => { expect(savedViewsMenuSource).toContain("from './useSavedViews';"); expect(filterToolbarSource).toContain('export const FilterPopoverTrigger'); - expect(filterToolbarSource).toContain("'min-h-11 rounded-md text-xs font-medium sm:h-7 sm:min-h-0'"); + expect(filterToolbarSource).toContain( + "'min-h-11 rounded-md text-xs font-medium sm:h-7 sm:min-h-0'", + ); expect(viewOptionsMenuSource).toContain(' { expect(screen.getByRole('alert')).toHaveTextContent( 'Recoverable retry attempts do not trigger this warning', ); - expect(screen.getByRole('alert')).toHaveTextContent( - 'classified as authentication (2)', - ); + expect(screen.getByRole('alert')).toHaveTextContent('classified as authentication (2)'); expect(screen.getByRole('alert')).toHaveTextContent( 'Check destination credentials, tokens, and account permissions', ); diff --git a/frontend-modern/src/hooks/__tests__/createNonSuspendingQuery.test.tsx b/frontend-modern/src/hooks/__tests__/createNonSuspendingQuery.test.tsx index 161a19db5..cefdb8d27 100644 --- a/frontend-modern/src/hooks/__tests__/createNonSuspendingQuery.test.tsx +++ b/frontend-modern/src/hooks/__tests__/createNonSuspendingQuery.test.tsx @@ -163,9 +163,7 @@ describe('createNonSuspendingQuery', () => { // patrol-status) the panel emptied and stayed empty until remount. const fetcher = vi.fn(async (key: string) => `value-for-${key}`); - render(() => ( - - )); + render(() => ); await waitFor(() => { expect(screen.getByTestId('query-probe').textContent).toContain('value-for-stable-key'); diff --git a/frontend-modern/src/utils/metricThresholds.ts b/frontend-modern/src/utils/metricThresholds.ts index d227176fa..3cc016b00 100644 --- a/frontend-modern/src/utils/metricThresholds.ts +++ b/frontend-modern/src/utils/metricThresholds.ts @@ -30,15 +30,7 @@ export type MetricType = 'cpu' | 'memory' | 'disk'; export type DisplayMetricType = MetricType | 'temperature' | 'diskTemperature' | 'usage'; export type DisplayMetricBarType = MetricType | 'generic'; export type AlertThresholdScope = - | 'guest' - | 'node' - | 'pbs' - | 'agent' - | 'docker' - | 'storage' - | 'kubernetes' - | 'truenas' - | 'vmware'; + 'guest' | 'node' | 'pbs' | 'agent' | 'docker' | 'storage' | 'kubernetes' | 'truenas' | 'vmware'; export interface MetricDisplayThresholds { warning: number;