From d5dbe0b4bac8185b68da79a39411548ecc0f2f0a Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Fri, 20 Jun 2025 17:53:08 -0400 Subject: [PATCH 1/2] Update error-navitem.jsx --- client/homebrew/navbar/error-navitem.jsx | 25 ++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx index 3de26ca56..ec72ace7d 100644 --- a/client/homebrew/navbar/error-navitem.jsx +++ b/client/homebrew/navbar/error-navitem.jsx @@ -23,14 +23,15 @@ const ErrorNavItem = createClass({ const error = this.props.error; const response = error.response; - const status = response.status; - const HBErrorCode = response.body?.HBErrorCode; - const message = response.body?.message; + const status = response?.status; + const errorCode = error.code + const HBErrorCode = response?.body?.HBErrorCode; + const message = response?.body?.message; let errMsg = ''; try { errMsg += `${error.toString()}\n\n`; errMsg += `\`\`\`\n${error.stack}\n`; - errMsg += `${JSON.stringify(response.error, null, ' ')}\n\`\`\``; + errMsg += `${JSON.stringify(response?.error, null, ' ')}\n\`\`\``; console.log(errMsg); } catch (e){} @@ -73,7 +74,7 @@ const ErrorNavItem = createClass({ ; } - if(response.body?.errors?.[0].reason == 'storageQuotaExceeded') { + if(response?.body?.errors?.[0].reason == 'storageQuotaExceeded') { return Oops!
@@ -82,7 +83,7 @@ const ErrorNavItem = createClass({ ; } - if(response.req.url.match(/^\/api.*Google.*$/m)){ + if(response?.req.url.match(/^\/api.*Google.*$/m)){ return Oops!
@@ -129,6 +130,18 @@ const ErrorNavItem = createClass({ ; } + if(errorCode === 'ECONNABORTED') { + return + Oops! +
+ The request to the server was interrupted or timed out. + This can happen due to a network issue, or if + trying to save a particularly large brew. + Please check your internet connection and try again. +
+
; + } + return Oops!
From 862fa7de890161bc31b0f42ccbaa0e5cc016174a Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 24 Jun 2025 17:44:22 -0400 Subject: [PATCH 2/2] Don't send full text back to client on save We return the stub after saving. When saving to HB MongoDB, the stub also includes the full text. This does not need to be sent back to the client. --- server/homebrew.api.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 2ab29f31b..392e175ca 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -412,6 +412,8 @@ const api = { const after = await afterSave(); if(!after) return; + saved.textBin = undefined; // Remove textBin from the saved object to save bandwidth + res.status(200).send(saved); }, deleteGoogleBrew : async (account, id, editId, res)=>{