From 8efadc4432f614f8e7486afe7c3d795116ab9e86 Mon Sep 17 00:00:00 2001 From: Alex Blank Date: Fri, 22 May 2026 19:54:40 +0000 Subject: [PATCH] fix: add defensive null checks to prevent filter crash - Add fallback to empty arrays for toolTypes, configs, and folders - Handle undefined API responses gracefully - Prevent Cannot read properties of undefined (reading 'filter') error Quality gates: npm run build passed --- apps/web/src/pages/tool-workshop.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/web/src/pages/tool-workshop.tsx b/apps/web/src/pages/tool-workshop.tsx index a51800c..740c754 100644 --- a/apps/web/src/pages/tool-workshop.tsx +++ b/apps/web/src/pages/tool-workshop.tsx @@ -89,9 +89,9 @@ export const ToolWorkshopPage = () => { const [showFolderForm, setShowFolderForm] = useState(false); const [selectedFolder, setSelectedFolder] = useState(null); - const selectedToolType = toolTypes.find((t) => t.id === selectedToolTypeId) || null; - const toolConfigs = configs.filter((c) => c.tool_type_id === selectedToolTypeId); - const toolFolders = folders; // Config folders are global, not per-tool-type in current API + const selectedToolType = (toolTypes || []).find((t) => t.id === selectedToolTypeId) || null; + const toolConfigs = (configs || []).filter((c) => c.tool_type_id === selectedToolTypeId); + const toolFolders = folders || []; // Config folders are global, not per-tool-type in current API const loadData = useCallback(async () => { setStatus("loading"); @@ -101,9 +101,9 @@ export const ToolWorkshopPage = () => { listToolConfigs(), listConfigFolders(), ]); - setToolTypes(types); - setConfigs(cfgs); - setFolders(fldrs); + setToolTypes(types || []); + setConfigs(cfgs || []); + setFolders(fldrs || []); setStatus("ready"); } catch { setStatus("error");