From 41566cfd0b584e48c2edd4718f423e6fed7584bd Mon Sep 17 00:00:00 2001 From: Yat Ho Date: Fri, 16 Feb 2024 13:20:23 +0800 Subject: [PATCH] feat: WebUI add `Error` case in port test result (#6607) * refactor: do not rely on port test response to determine ip protocol * feat: show `Error` in port test if no result is returned --- web/src/prefs-dialog.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/web/src/prefs-dialog.js b/web/src/prefs-dialog.js index f4f0c6296..443e2fbf9 100644 --- a/web/src/prefs-dialog.js +++ b/web/src/prefs-dialog.js @@ -48,20 +48,27 @@ export class PrefsDialog extends EventTarget { )) { delete element.dataset.open; setTextContent(element, 'Checking...'); - this.remote.checkPort(key, this._onPortChecked, this); + this.remote.checkPort( + key, + (response) => this._onPortChecked(key, response), + this, + ); } } - _onPortChecked(response) { + _onPortChecked(ipProtocol, response) { if (this.closed) { return; } - const element = - this.elements.network.port_status_label[response.arguments['ipProtocol']]; + const element = this.elements.network.port_status_label[ipProtocol]; const is_open = response.arguments['port-is-open'] || false; element.dataset.open = is_open; - setTextContent(element, is_open ? 'Open' : 'Closed'); + if ('port-is-open' in response.arguments) { + setTextContent(element, is_open ? 'Open' : 'Closed'); + } else { + setTextContent(element, 'Error'); + } } _setBlocklistButtonEnabled(b) {