From d98859d5e0c738189cf70b8f377bba1dd5a7858b Mon Sep 17 00:00:00 2001 From: Akshay Date: Sat, 1 Nov 2025 16:33:43 +0530 Subject: [PATCH] fix(admin): Add null checks for system info rendering - Add optional chaining and nullish coalescing for systemInfo properties - Prevent potential runtime errors when systemInfo is undefined - Provide default values for system metrics and information - Improve robustness of system information display in admin dashboard --- app/admin/system/page.tsx | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/app/admin/system/page.tsx b/app/admin/system/page.tsx index c097afbf..a2359941 100644 --- a/app/admin/system/page.tsx +++ b/app/admin/system/page.tsx @@ -9,9 +9,9 @@ import { Alert, AlertDescription } from '@/components/ui/alert'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Textarea } from '@/components/ui/textarea'; -import { - RefreshCw, - Server, +import { + RefreshCw, + Server, HardDrive, Cpu, MemoryStick, @@ -116,7 +116,7 @@ export default function AdminSystemPage() { const params = new URLSearchParams(); if (logLevel !== 'all') params.append('level', logLevel); if (logService !== 'all') params.append('service', logService); - + const response = await makeAuthenticatedRequest(`/api/admin/logs?${params.toString()}`); if (!response.ok) throw new Error('Failed to fetch logs'); const data = await response.json(); @@ -256,7 +256,7 @@ export default function AdminSystemPage() { -
{formatUptime(systemInfo.uptime)}
+
{formatUptime(systemInfo?.uptime ?? 0)}

Since last restart

@@ -269,9 +269,9 @@ export default function AdminSystemPage() { -
{systemInfo.cpu.usage.toFixed(1)}%
+
{systemInfo?.cpu?.usage?.toFixed(1) ?? '0'}%

- {systemInfo.cpu.cores} cores + {systemInfo?.cpu?.cores ?? 0} cores

@@ -282,9 +282,9 @@ export default function AdminSystemPage() { -
{systemInfo.memory.percentage.toFixed(1)}%
+
{systemInfo?.memory?.percentage?.toFixed(1) ?? '0'}%

- {formatBytes(systemInfo.memory.used)} / {formatBytes(systemInfo.memory.total)} + {formatBytes(systemInfo?.memory?.used ?? 0)} / {formatBytes(systemInfo?.memory?.total ?? 0)}

@@ -295,9 +295,9 @@ export default function AdminSystemPage() { -
{systemInfo.disk.percentage.toFixed(1)}%
+
{systemInfo?.disk?.percentage?.toFixed(1) ?? '0'}%

- {formatBytes(systemInfo.disk.used)} / {formatBytes(systemInfo.disk.total)} + {formatBytes(systemInfo?.disk?.used ?? 0)} / {formatBytes(systemInfo?.disk?.total ?? 0)}

@@ -312,19 +312,19 @@ export default function AdminSystemPage() {
Environment: - {systemInfo.environment} + {systemInfo?.environment ?? 'N/A'}
Version: - {systemInfo.version} + {systemInfo?.version ?? 'N/A'}
Node.js: - {systemInfo.nodeVersion} + {systemInfo?.nodeVersion ?? 'N/A'}
Platform: - {systemInfo.platform} + {systemInfo?.platform ?? 'N/A'}
@@ -336,7 +336,7 @@ export default function AdminSystemPage() {
- {systemInfo.network.interfaces.map((iface, index) => ( + {systemInfo?.network?.interfaces?.map((iface, index) => (
{iface.name} {iface.address} @@ -373,9 +373,9 @@ export default function AdminSystemPage() {

{service.name}

- Uptime: {formatUptime(service.uptime)} | - Memory: {formatBytes(service.memory)} | - CPU: {service.cpu.toFixed(1)}% + Uptime: {formatUptime(service.uptime)} | + Memory: {formatBytes(service.memory)} | + CPU: {service.cpu?.toFixed(1) ?? '0'}%

Last restart: {new Date(service.lastRestart).toLocaleString()}