From 6adaf337c23d5ac2628566ec963d134f7355851d Mon Sep 17 00:00:00 2001 From: NAVIN0507 Date: Sun, 20 Apr 2025 14:20:35 +0530 Subject: [PATCH 1/2] Two unused eslint-disable directives in app.tsx --- webview-ui/src/App.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index 40105320..95a3e5b1 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -31,6 +31,14 @@ const AppContent = () => { const [detailedTask, setDetailedTask] = useState(null) const [detailedStory, setDetailedStory] = useState(null) + const onConfigure = useCallback((loadDefault: boolean) => { + if (loadDefault) { + vscode.postMessage({ type: "onHaiConfigure", text: haiConfig?.folder }) + } else { + vscode.postMessage({ type: "onHaiConfigure" }) + } + }, [haiConfig?.folder]) + const handleMessage = useCallback((e: MessageEvent) => { const message: ExtensionMessage = e.data switch (message.type) { @@ -114,8 +122,7 @@ const AppContent = () => { setHaiConfig({ ...haiConfig, folder: message.haiTaskData!.folder, ts: message.haiTaskData!.ts }) break } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) + }, [haiConfig, setHaiConfig]) useEvent("message", handleMessage) @@ -139,18 +146,12 @@ const AppContent = () => { if (haiConfig?.folder) { onConfigure(true) } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [haiConfig?.folder]) + }, [haiConfig?.folder, onConfigure]) const onHaiTaskCancel = () => { setShowHaiTaskList(false) } - const onConfigure = (loadDefault: boolean) => { - loadDefault && vscode.postMessage({ type: "onHaiConfigure", text: haiConfig?.folder }) - !loadDefault && vscode.postMessage({ type: "onHaiConfigure" }) - } - const onHaiTaskReset = () => { setTaskList([]) vscode.postMessage({ type: "onHaiConfigure", bool: false }) From a25b89bef0fd57f35a2d4e5783190363738c05f5 Mon Sep 17 00:00:00 2001 From: NAVIN0507 Date: Sun, 20 Apr 2025 14:26:36 +0530 Subject: [PATCH 2/2] fixed eslint issue in useCallBack and useEffect dependencies --- webview-ui/src/App.tsx | 188 +++++++++++++++++++++-------------------- 1 file changed, 97 insertions(+), 91 deletions(-) diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index 95a3e5b1..1a6c4b28 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -31,98 +31,104 @@ const AppContent = () => { const [detailedTask, setDetailedTask] = useState(null) const [detailedStory, setDetailedStory] = useState(null) - const onConfigure = useCallback((loadDefault: boolean) => { - if (loadDefault) { - vscode.postMessage({ type: "onHaiConfigure", text: haiConfig?.folder }) - } else { - vscode.postMessage({ type: "onHaiConfigure" }) - } - }, [haiConfig?.folder]) + const onConfigure = useCallback( + (loadDefault: boolean) => { + if (loadDefault) { + vscode.postMessage({ type: "onHaiConfigure", text: haiConfig?.folder }) + } else { + vscode.postMessage({ type: "onHaiConfigure" }) + } + }, + [haiConfig?.folder], + ) - const handleMessage = useCallback((e: MessageEvent) => { - const message: ExtensionMessage = e.data - switch (message.type) { - case "action": - switch (message.action!) { - case "settingsButtonClicked": - setShowSettings(true) - setShowHistory(false) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(false) - setShowExperts(false) - break - case "historyButtonClicked": - setShowSettings(false) - setShowHistory(true) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(false) - setShowExperts(false) - break - case "mcpButtonClicked": - setShowSettings(false) - setShowHistory(false) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(true) - setShowAccount(false) - setShowExperts(false) - break - case "accountButtonClicked": - setShowSettings(false) - setShowHistory(false) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(true) - setShowExperts(false) - break - case "chatButtonClicked": - setShowSettings(false) - setShowHistory(false) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(false) - setShowExperts(false) - break - case "haiBuildTaskListClicked": - setShowSettings(false) - setShowHistory(false) - setShowHaiTaskList(true) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(false) - setShowExperts(false) - break - case "expertsButtonClicked": - setShowSettings(false) - setShowHistory(false) - setShowHaiTaskList(false) - setDetailedStory(null) - setDetailedTask(null) - setShowMcp(false) - setShowAccount(false) - setShowExperts(true) - break - } - break - case "haiTaskData": - setTaskList(message.haiTaskData!.tasks) - setTaskLastUpdatedTs(message.haiTaskData!.ts) - setHaiConfig({ ...haiConfig, folder: message.haiTaskData!.folder, ts: message.haiTaskData!.ts }) - break - } - }, [haiConfig, setHaiConfig]) + const handleMessage = useCallback( + (e: MessageEvent) => { + const message: ExtensionMessage = e.data + switch (message.type) { + case "action": + switch (message.action!) { + case "settingsButtonClicked": + setShowSettings(true) + setShowHistory(false) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(false) + setShowExperts(false) + break + case "historyButtonClicked": + setShowSettings(false) + setShowHistory(true) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(false) + setShowExperts(false) + break + case "mcpButtonClicked": + setShowSettings(false) + setShowHistory(false) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(true) + setShowAccount(false) + setShowExperts(false) + break + case "accountButtonClicked": + setShowSettings(false) + setShowHistory(false) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(true) + setShowExperts(false) + break + case "chatButtonClicked": + setShowSettings(false) + setShowHistory(false) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(false) + setShowExperts(false) + break + case "haiBuildTaskListClicked": + setShowSettings(false) + setShowHistory(false) + setShowHaiTaskList(true) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(false) + setShowExperts(false) + break + case "expertsButtonClicked": + setShowSettings(false) + setShowHistory(false) + setShowHaiTaskList(false) + setDetailedStory(null) + setDetailedTask(null) + setShowMcp(false) + setShowAccount(false) + setShowExperts(true) + break + } + break + case "haiTaskData": + setTaskList(message.haiTaskData!.tasks) + setTaskLastUpdatedTs(message.haiTaskData!.ts) + setHaiConfig({ ...haiConfig, folder: message.haiTaskData!.folder, ts: message.haiTaskData!.ts }) + break + } + }, + [haiConfig, setHaiConfig], + ) useEvent("message", handleMessage)