From 853f26d3266362d82319da0dc63cfce6614abff3 Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Sat, 28 Feb 2026 21:34:51 +0100 Subject: [PATCH] fix: use double-cast to resolve TS2352/TS2322 type errors Named interfaces without index signatures cannot be directly cast to Record. Use `as unknown as` double-cast to satisfy TypeScript strict mode for the AnyEntity[] and Dispatch casts in ConfigDetail.tsx, and the Config -> Record cast in ConfigList.tsx. Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/routes/ConfigDetail.tsx | 20 ++++++++++---------- frontend/src/routes/ConfigList.tsx | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/frontend/src/routes/ConfigDetail.tsx b/frontend/src/routes/ConfigDetail.tsx index 3418842..63d54a9 100644 --- a/frontend/src/routes/ConfigDetail.tsx +++ b/frontend/src/routes/ConfigDetail.tsx @@ -53,8 +53,8 @@ export default function ConfigDetail() { const tabConfig = [ { label: 'Zones', - rows: zones as AnyEntity[], - setRows: setZones as Dispatch>, + rows: zones as unknown as AnyEntity[], + setRows: setZones as unknown as Dispatch>, api: zonesApi, columns: [ { key: 'name' as const, label: 'Name' }, @@ -69,8 +69,8 @@ export default function ConfigDetail() { }, { label: 'Interfaces', - rows: interfaces as AnyEntity[], - setRows: setInterfaces as Dispatch>, + rows: interfaces as unknown as AnyEntity[], + setRows: setInterfaces as unknown as Dispatch>, api: interfacesApi, columns: [ { key: 'name' as const, label: 'Interface' }, @@ -89,8 +89,8 @@ export default function ConfigDetail() { }, { label: 'Policies', - rows: policies as AnyEntity[], - setRows: setPolicies as Dispatch>, + rows: policies as unknown as AnyEntity[], + setRows: setPolicies as unknown as Dispatch>, api: policiesApi, columns: [ { @@ -118,8 +118,8 @@ export default function ConfigDetail() { }, { label: 'Rules', - rows: rules as AnyEntity[], - setRows: setRules as Dispatch>, + rows: rules as unknown as AnyEntity[], + setRows: setRules as unknown as Dispatch>, api: rulesApi, columns: [ { key: 'action' as const, label: 'Action' }, @@ -152,8 +152,8 @@ export default function ConfigDetail() { }, { label: 'Masq/NAT', - rows: masq as AnyEntity[], - setRows: setMasq as Dispatch>, + rows: masq as unknown as AnyEntity[], + setRows: setMasq as unknown as Dispatch>, api: masqApi, columns: [ { key: 'out_interface' as const, label: 'Out Interface' }, diff --git a/frontend/src/routes/ConfigList.tsx b/frontend/src/routes/ConfigList.tsx index 1810aeb..27d1e5d 100644 --- a/frontend/src/routes/ConfigList.tsx +++ b/frontend/src/routes/ConfigList.tsx @@ -72,7 +72,7 @@ export default function ConfigList() { open={formOpen} title={editing ? 'Edit Config' : 'New Config'} fields={FIELDS} - initialValues={editing ?? undefined} + initialValues={editing as unknown as Record ?? undefined} onClose={() => { setFormOpen(false); setEditing(null) }} onSubmit={handleSubmit} />