diff --git a/frontend-modern/src/App.tsx b/frontend-modern/src/App.tsx index f788dcd0c..96d75ce22 100644 --- a/frontend-modern/src/App.tsx +++ b/frontend-modern/src/App.tsx @@ -41,7 +41,6 @@ import { CommandPaletteModal } from './components/shared/CommandPaletteModal'; import { MobileNavBar } from './components/shared/MobileNavBar'; import { createTooltipSystem } from './components/shared/Tooltip'; import type { State, Alert } from '@/types/api'; -import { ProxmoxIcon } from '@/components/icons/ProxmoxIcon'; import { startMetricsSampler } from './stores/metricsSampler'; import { seedFromBackend } from './stores/metricsHistory'; import { getMetricsViewMode } from './stores/metricsViewMode'; @@ -50,7 +49,6 @@ import ServerIcon from 'lucide-solid/icons/server'; import HardDriveIcon from 'lucide-solid/icons/hard-drive'; import ArchiveIcon from 'lucide-solid/icons/archive'; import WrenchIcon from 'lucide-solid/icons/wrench'; -import MonitorIcon from 'lucide-solid/icons/monitor'; import BellIcon from 'lucide-solid/icons/bell'; import SettingsIcon from 'lucide-solid/icons/settings'; import NetworkIcon from 'lucide-solid/icons/network'; @@ -67,7 +65,6 @@ import { useResourcesAsLegacy } from './hooks/useResources'; import { useKeyboardShortcuts } from './hooks/useKeyboardShortcuts'; import { updateSystemSettingsFromResponse, markSystemSettingsLoadedWithDefaults } from './stores/systemSettings'; import { initKioskMode, isKioskMode, setKioskMode, subscribeToKioskMode, getKioskModePreference } from './utils/url'; -import { showToast } from '@/utils/toast'; import { GlobalSearch } from '@/components/shared/GlobalSearch'; @@ -84,19 +81,11 @@ const AlertsPage = lazy(() => import('./pages/Alerts').then((module) => ({ default: module.Alerts })), ); const SettingsPage = lazy(() => import('./components/Settings/Settings')); -const DockerHosts = lazy(() => - import('./components/Docker/DockerHosts').then((module) => ({ default: module.DockerHosts })), -); const KubernetesClusters = lazy(() => import('./components/Kubernetes/KubernetesClusters').then((module) => ({ default: module.KubernetesClusters, })), ); -const HostsOverview = lazy(() => - import('./components/Hosts/HostsOverview').then((module) => ({ - default: module.HostsOverview, - })), -); const InfrastructurePage = lazy(() => import('./pages/Infrastructure')); const AIIntelligencePage = lazy(() => import('./pages/AIIntelligence').then((module) => ({ default: module.AIIntelligence })), @@ -126,23 +115,6 @@ export const useDarkMode = () => { return context; }; -// Docker route component - uses unified resources via useResourcesAsLegacy hook -function DockerRoute() { - const wsContext = useContext(WebSocketContext); - if (!wsContext) { - return
| handleSort('name')} - > - Service{renderSortIndicator('name')} - | -handleSort('stack')} - > - Stack{renderSortIndicator('stack')} - | -handleSort('mode')} - > - Mode{renderSortIndicator('mode')} - | -handleSort('replicas')} - > - Replicas{renderSortIndicator('replicas')} - | -handleSort('nodes')} - > - Nodes{renderSortIndicator('nodes')} - | -Updated | -
|---|
| handleSort('name')} - onKeyDown={(e) => e.key === 'Enter' && handleSort('name')} - tabIndex={0} - role="button" - aria-label={`Sort by host ${sortKey() === 'name' ? (sortDirection() === 'asc' ? 'ascending' : 'descending') : ''}`} - > - Host {renderSortIndicator('name')} - | -handleSort('uptime')} - > - Uptime {renderSortIndicator('uptime')} - | -handleSort('cpu')} - > - CPU {renderSortIndicator('cpu')} - | -handleSort('memory')} - > - Memory {renderSortIndicator('memory')} - | -handleSort('disk')} - > - Disk {renderSortIndicator('disk')} - | -handleSort('running')} - > - Containers {renderSortIndicator('running')} - | -handleSort('lastSeen')} - > - Last Update {renderSortIndicator('lastSeen')} - | -handleSort('agent')} - > - Agent {renderSortIndicator('agent')} - | -
|---|---|---|---|---|---|---|---|
|
-
-
-
-
- {runtimeInfo.label}
-
-
- |
-
-
-
- {uptimeLabel}
-
-
- |
-
-
-
- |
-
-
-
- |
-
-
-
- |
-
-
-
- |
-
-
-
- |
-
-
-
- |
-
| Task | -Type | -Node | -State | -CPU | -Memory | -Updated | -
|---|---|---|---|---|---|---|
|
-
-
- {taskLabel()}
-
-
- |
- - - Task - - | -- {task.nodeName || task.nodeId || '—'} - | -- - {task.currentState || task.desiredState || 'Unknown'} - - | -
- |
-
- |
-
- |
-
| colSortKey && handleSort(colSortKey)}
- onKeyDown={(e) => e.key === 'Enter' && colSortKey && handleSort(colSortKey)}
- tabIndex={0}
- role="button"
- aria-label={`Sort by ${col.label} ${colSortKey && sortKey() === colSortKey ? (sortDirection() === 'asc' ? 'ascending' : 'descending') : ''}`}
- aria-sort={colSortKey ? ariaSort(colSortKey) : 'none'}
- >
-
- {col.label}
- {colSortKey && renderSortIndicator(colSortKey)}
-
-
- {col.label}
- {colSortKey && renderSortIndicator(colSortKey)}
-
- |
- );
- }}
-
|---|
- Upgrade to Pulse Pro to unlock {historyRange() === '30d' ? '30' : '90'} days of historical data retention. -
- - Unlock Pro Features - -| handleSort('name')}> - Host {renderSortIndicator('name')} - | -handleSort('platform')}> - Platform {renderSortIndicator('platform')} - | -handleSort('cpu')}> - CPU {renderSortIndicator('cpu')} - | -handleSort('memory')}> - Memory {renderSortIndicator('memory')} - | -handleSort('disk')}> - Disk {renderSortIndicator('disk')} - | -- {HOST_COLUMNS.find(c => c.id === 'temp')?.icon} - | -handleSort('uptime')} title="Uptime"> - - {HOST_COLUMNS.find(c => c.id === 'uptime')?.icon} - {renderSortIndicator('uptime')} - - | -Agent | -- {HOST_COLUMNS.find(c => c.id === 'ip')?.icon} - | -Arch | -Kernel | -RAID | -
|---|
- {props.host.displayName || props.host.hostname || props.host.id} -
-- {props.host.hostname} -
-- Updated {formatRelativeTime(props.host.lastSeen!)} -
-{props.host.platform || '—'}
-- {props.host.osName} {props.host.osVersion} -
-