From 651d9f821ff6835efde641e8688147fee7cd1bf2 Mon Sep 17 00:00:00 2001 From: Sylvia Crowe Date: Wed, 19 Feb 2025 12:55:37 -0800 Subject: [PATCH 1/3] fix: add error overlay to the stat file atom This adds a missing error overlay integration in preview.tsx. --- frontend/app/view/preview/preview.tsx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/frontend/app/view/preview/preview.tsx b/frontend/app/view/preview/preview.tsx index 27e09c3233..887ee04c3f 100644 --- a/frontend/app/view/preview/preview.tsx +++ b/frontend/app/view/preview/preview.tsx @@ -388,13 +388,20 @@ export class PreviewModel implements ViewModel { if (fileName == null) { return null; } - const statFile = await RpcApi.FileInfoCommand(TabRpcClient, { - info: { - path, - }, - }); - console.log("stat file", statFile); - return statFile; + try { + const statFile = await RpcApi.FileInfoCommand(TabRpcClient, { + info: { + path, + }, + }); + return statFile; + } catch (e) { + const errorStatus: ErrorMsg = { + status: "File Read Failed", + text: `${e}`, + }; + globalStore.set(this.errorMsgAtom, errorStatus); + } }); this.fileMimeType = atom>(async (get) => { const fileInfo = await get(this.statFile); From f61b52f0424d715ac886d2606c6342d7b526bb69 Mon Sep 17 00:00:00 2001 From: Sylvia Crowe Date: Wed, 19 Feb 2025 13:48:43 -0800 Subject: [PATCH 2/3] feat: clear error overlay when changing connection --- frontend/app/view/preview/preview.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/app/view/preview/preview.tsx b/frontend/app/view/preview/preview.tsx index 887ee04c3f..c2ee65d6af 100644 --- a/frontend/app/view/preview/preview.tsx +++ b/frontend/app/view/preview/preview.tsx @@ -1071,6 +1071,12 @@ function PreviewView({ }) { const connStatus = useAtomValue(model.connStatus); const [errorMsg, setErrorMsg] = useAtom(model.errorMsgAtom); + const connection = useAtomValue(model.connectionImmediate); + + useEffect(() => { + setErrorMsg(null); + }, [connection]); + if (connStatus?.status != "connected") { return null; } @@ -1096,6 +1102,7 @@ function PreviewView({ const fetchSuggestionsFn = async (query, ctx) => { return await fetchSuggestions(model, query, ctx); }; + return ( <> {/* */} From 3e33b0b96c053dcdba089d9cfc74e25a326d8a49 Mon Sep 17 00:00:00 2001 From: Sylvia Crowe Date: Wed, 19 Feb 2025 13:59:18 -0800 Subject: [PATCH 3/3] refactor: change control flow of fullFileAtom --- frontend/app/view/preview/preview.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frontend/app/view/preview/preview.tsx b/frontend/app/view/preview/preview.tsx index c2ee65d6af..c188d4e700 100644 --- a/frontend/app/view/preview/preview.tsx +++ b/frontend/app/view/preview/preview.tsx @@ -417,13 +417,13 @@ export class PreviewModel implements ViewModel { if (fileName == null) { return null; } - let file: FileData; try { - file = await RpcApi.FileReadCommand(TabRpcClient, { + const file = await RpcApi.FileReadCommand(TabRpcClient, { info: { path, }, }); + return file; } catch (e) { const errorStatus: ErrorMsg = { status: "File Read Failed", @@ -431,7 +431,6 @@ export class PreviewModel implements ViewModel { }; globalStore.set(this.errorMsgAtom, errorStatus); } - return file; }); this.fileContentSaved = atom(null) as PrimitiveAtom;