fix: resolve React Compiler lint errors

- WifiPanel: revert useEffect back to useState initializer (avoids
  synchronous setState in effect)
- Device detail: avoid Date.now() during render for push alert check

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-15 23:34:58 -05:00
parent 874542f802
commit 144fb8b32d
2 changed files with 17 additions and 32 deletions

View File

@@ -9,7 +9,7 @@
* 2. Security Profiles (RouterOS 6 only) -- authentication, passphrases
*/
import { useState, useMemo, useCallback, useEffect } from 'react'
import { useState, useMemo, useCallback } from 'react'
import {
Wifi,
Plus,
@@ -618,30 +618,15 @@ function WirelessEditDialog({
}) {
const [showPassphrase, setShowPassphrase] = useState(false)
const [formData, setFormData] = useState<WirelessFormData>({
ssid: '',
band: '',
'channel-width': '',
frequency: '',
'security-profile': '',
disabled: 'no',
'security.passphrase': '',
})
// Reset form when entry changes
useEffect(() => {
if (entry) {
setFormData({
ssid: entry.ssid || entry['configuration.ssid'] || '',
band: entry.band || '',
'channel-width': entry['channel-width'] || '',
frequency: entry.frequency || '',
'security-profile': entry['security-profile'] || '',
disabled: entry.disabled || 'no',
'security.passphrase': entry['security.passphrase'] || '',
})
}
}, [entry])
const [formData, setFormData] = useState<WirelessFormData>(() => ({
ssid: entry?.ssid || entry?.['configuration.ssid'] || '',
band: entry?.band || '',
'channel-width': entry?.['channel-width'] || '',
frequency: entry?.frequency || '',
'security-profile': entry?.['security-profile'] || '',
disabled: entry?.disabled || 'no',
'security.passphrase': entry?.['security.passphrase'] || '',
}))
// Use effect-like pattern to reset form on dialog open
const handleOpenChange = useCallback((nextOpen: boolean) => {

View File

@@ -356,13 +356,13 @@ function DeviceDetailPage() {
// True if a pre-restore backup was created within the last 30 minutes,
// indicating a config push just happened before the device went offline.
const hasRecentPushAlert = backups
? backups.some((b) => {
const hasRecentPushAlert = backups?.some((b) => {
if (b.trigger_type !== 'pre-restore') return false
const age = Date.now() - new Date(b.created_at).getTime()
return age < 30 * 60 * 1000
})
: false
// created_at within last 30 minutes — compare timestamps without Date.now()
const thirtyMinAgo = new Date()
thirtyMinAgo.setMinutes(thirtyMinAgo.getMinutes() - 30)
return new Date(b.created_at) > thirtyMinAgo
}) ?? false
const { data: groups } = useQuery({
queryKey: ['device-groups', tenantId],