From f8949d230ff343b31cb1167f41b03c0c224657f5 Mon Sep 17 00:00:00 2001 From: Saravana Achu Mac Date: Sat, 4 Apr 2026 17:56:53 -0700 Subject: [PATCH] chore(admin-web): reduce high-signal lint warnings --- .../app/(dashboard)/ai-diagnostics/page.tsx | 85 +++++++--------- .../app/(dashboard)/broadcasts/[id]/page.tsx | 99 +++++++++---------- .../src/app/(dashboard)/broadcasts/page.tsx | 50 ++++------ .../(dashboard)/debug-sessions/[id]/page.tsx | 39 ++++---- .../app/(dashboard)/debug-sessions/page.tsx | 30 +++--- .../app/(dashboard)/health-dashboard/page.tsx | 96 +++++++++++++----- .../src/app/(dashboard)/ops/page.tsx | 67 +++++++------ 7 files changed, 251 insertions(+), 215 deletions(-) diff --git a/dashboards/admin-web/src/app/(dashboard)/ai-diagnostics/page.tsx b/dashboards/admin-web/src/app/(dashboard)/ai-diagnostics/page.tsx index be6ec3e4..c1aeb6ae 100644 --- a/dashboards/admin-web/src/app/(dashboard)/ai-diagnostics/page.tsx +++ b/dashboards/admin-web/src/app/(dashboard)/ai-diagnostics/page.tsx @@ -1,11 +1,10 @@ 'use client'; -import { useState, useEffect } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Badge } from '@/components/ui/badge'; -import { Skeleton } from '@/components/ui/skeleton'; import { Alert, AlertDescription } from '@/components/ui/alert'; import { Dialog, @@ -92,16 +91,12 @@ export default function AIDiagnosticsPage() { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [selectedProduct, setSelectedProduct] = useState('all'); - const [selectedCluster, setSelectedCluster] = useState(null); - const [activeTab, setActiveTab] = useState<'overview' | 'clusters' | 'alerts' | 'query'>('overview'); + const [activeTab, setActiveTab] = useState<'overview' | 'clusters' | 'alerts' | 'query'>( + 'overview' + ); // Fetch clusters on mount - useEffect(() => { - fetchClusters(); - fetchAlerts(); - }, [selectedProduct]); - - const fetchClusters = async () => { + const fetchClusters = useCallback(async () => { try { const params = new URLSearchParams(); if (selectedProduct !== 'all') params.set('productId', selectedProduct); @@ -115,9 +110,9 @@ export default function AIDiagnosticsPage() { } catch (err) { setError(err instanceof Error ? err.message : 'Failed to fetch clusters'); } - }; + }, [selectedProduct]); - const fetchAlerts = async () => { + const fetchAlerts = useCallback(async () => { try { const params = new URLSearchParams(); if (selectedProduct !== 'all') params.set('productId', selectedProduct); @@ -129,7 +124,12 @@ export default function AIDiagnosticsPage() { } catch (err) { console.error('Failed to fetch alerts:', err); } - }; + }, [selectedProduct]); + + useEffect(() => { + void fetchClusters(); + void fetchAlerts(); + }, [fetchAlerts, fetchClusters]); const handleQuery = async () => { if (!query.trim()) return; @@ -175,11 +175,7 @@ export default function AIDiagnosticsPage() { medium: 'bg-yellow-500', low: 'bg-blue-500', }; - return ( - - {severity} - - ); + return {severity}; }; // Overview stats @@ -236,8 +232,8 @@ export default function AIDiagnosticsPage() { setQuery(e.target.value)} - onKeyDown={(e) => e.key === 'Enter' && handleQuery()} + onChange={e => setQuery(e.target.value)} + onKeyDown={e => e.key === 'Enter' && handleQuery()} className="pl-9" /> @@ -261,7 +257,7 @@ export default function AIDiagnosticsPage() { 'Compare iOS vs Android crash rates', 'Show new error types today', 'Why did auth failures spike?', - ].map((suggestion) => ( + ].map(suggestion => (
-

- {isEdit ? 'Edit Broadcast' : 'New Broadcast'} -

+

{isEdit ? 'Edit Broadcast' : 'New Broadcast'}

{isEdit ? 'Update your broadcast details' : 'Create a targeted message campaign'}

@@ -217,9 +222,7 @@ export default function BroadcastEditorPage() { Message Content - - Craft your broadcast message - + Craft your broadcast message
@@ -227,7 +230,7 @@ export default function BroadcastEditorPage() { setForm({ ...form, title: e.target.value })} + onChange={e => setForm({ ...form, title: e.target.value })} placeholder="Enter broadcast title" />
@@ -237,7 +240,7 @@ export default function BroadcastEditorPage() {