feat: synchronize selected certificate IDs with available certificates on update

This commit is contained in:
GitHub Actions
2026-03-23 05:39:37 +00:00
parent f13d95df0f
commit 4bdc771cd4

View File

@@ -1,6 +1,6 @@
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { Trash2, ChevronUp, ChevronDown } from 'lucide-react'
import { useState, useMemo } from 'react'
import { useState, useMemo, useEffect } from 'react'
import { useTranslation } from 'react-i18next'
import BulkDeleteCertificateDialog from './dialogs/BulkDeleteCertificateDialog'
@@ -46,6 +46,15 @@ export default function CertificateList() {
const [selectedIds, setSelectedIds] = useState<Set<number>>(new Set())
const [showBulkDeleteDialog, setShowBulkDeleteDialog] = useState(false)
useEffect(() => {
setSelectedIds(prev => {
const validIds = new Set(certificates.map(c => c.id).filter((id): id is number => id != null))
const reconciled = new Set([...prev].filter(id => validIds.has(id)))
if (reconciled.size === prev.size) return prev
return reconciled
})
}, [certificates])
const deleteMutation = useMutation({
mutationFn: async (id: number) => {
await deleteCertificate(id)