memoize alertsbutton and use string for global system alerts set

This commit is contained in:
Henry Dollman
2024-10-19 18:08:02 -04:00
parent 8bf7a0e1d6
commit 7f01d1ec7e
2 changed files with 6 additions and 6 deletions

View File

@@ -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 }) {
</DialogContent>
</Dialog>
)
}
})
function TheContent({
data: { system, alerts, systemAlerts },

View File

@@ -79,7 +79,7 @@ export function SystemAlertGlobal({
alerts: AlertRecord[]
systems: SystemRecord[]
}) {
const systemsWithExistingAlerts = useRef<{ set: Set<SystemRecord>; populatedSet: boolean }>({
const systemsWithExistingAlerts = useRef<{ set: Set<string>; 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 = {