From b91074ba9f523e3b2cbd31ed1915430c8c65502c Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch Date: Tue, 26 Dec 2023 02:24:06 +0100 Subject: Indicate faulty requests better --- public/gallery.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'public/gallery.js') diff --git a/public/gallery.js b/public/gallery.js index 299d372..9d3b067 100644 --- a/public/gallery.js +++ b/public/gallery.js @@ -1,14 +1,25 @@ 'use strict' +let callActive = false +let callFaulty = false + function call(method, params) { - // TODO: Make it apparent when results result in errors: - // - With responseType == "json", m.request() always expects JSON, - // and error.message is null if it fails, but we can handle it manually. - // - Go can wrap all errors into trivial strings before writing. + // XXX: At least with POST, unsuccessful requests result + // in catched errors containing Errors with a null message. + // This is an issue within XMLHttpRequest. + callActive++ return m.request({ method: "POST", url: `/api/${method}`, body: params, + }).then(result => { + callActive-- + callFaulty = false + return result + }).catch(error => { + callActive-- + callFaulty = true + throw error }) } @@ -72,8 +83,11 @@ let Header = { return m('.header', {}, [ m('nav', main), m('nav', context), - // TODO: End it with an activity indicator. - m('.activity', '☺'), + callFaulty + ? m('.activity.error[title=Error]', '●') + : callActive + ? m('.activity[title=Busy]', '●') + : m('.activity[title=Idle]', '○'), ]) }, } -- cgit v1.2.3-70-g09d2