diff --git a/beszel/site/src/components/alerts/alert-button.tsx b/beszel/site/src/components/alerts/alert-button.tsx index 59177c6dc..929e69a17 100644 --- a/beszel/site/src/components/alerts/alert-button.tsx +++ b/beszel/site/src/components/alerts/alert-button.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react' +import { memo, useState } from 'react' import { useStore } from '@nanostores/react' import { $alerts, $systems } from '@/lib/stores' import { @@ -18,7 +18,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { Checkbox } from '../ui/checkbox' import { SystemAlert, SystemAlertGlobal } from './alerts-system' -export default function AlertsButton({ system }: { system: SystemRecord }) { +export default memo(function AlertsButton({ system }: { system: SystemRecord }) { const alerts = useStore($alerts) const [opened, setOpened] = useState(false) @@ -47,7 +47,7 @@ export default function AlertsButton({ system }: { system: SystemRecord }) { ) -} +}) function TheContent({ data: { system, alerts, systemAlerts }, diff --git a/beszel/site/src/components/alerts/alerts-system.tsx b/beszel/site/src/components/alerts/alerts-system.tsx index 745f235bb..fa6ea91b7 100644 --- a/beszel/site/src/components/alerts/alerts-system.tsx +++ b/beszel/site/src/components/alerts/alerts-system.tsx @@ -79,7 +79,7 @@ export function SystemAlertGlobal({ alerts: AlertRecord[] systems: SystemRecord[] }) { - const systemsWithExistingAlerts = useRef<{ set: Set; populatedSet: boolean }>({ + const systemsWithExistingAlerts = useRef<{ set: Set; populatedSet: boolean }>({ set: new Set(), populatedSet: false, }) @@ -106,7 +106,7 @@ export function SystemAlertGlobal({ } for (let system of systems) { // if overwrite is false and system is in set (alert existed), skip - if (!overwrite && set.has(system)) { + if (!overwrite && set.has(system.id)) { continue } // find matching existing alert @@ -115,7 +115,7 @@ export function SystemAlertGlobal({ ) // if first run, add system to set (alert already existed when global panel was opened) if (existingAlert && !populatedSet && !overwrite) { - set.add(system) + set.add(system.id) continue } const requestOptions: RecordOptions = {