diff --git a/package-lock.json b/package-lock.json index e54ec2c..211ad7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@material/mwc-icon-button": "^0.27.0", "@material/mwc-textfield": "^0.27.0", "esptool-js": "github:espressif/esptool-js#076af269f44daa5b7823031221f39bf22124c129", - "improv-wifi-serial-sdk": "^2.3.0", + "improv-wifi-serial-sdk": "^2.4.0", "lit": "^2.5.0", "pako": "^2.1.0", "tslib": "^2.4.1" @@ -2050,13 +2050,14 @@ } }, "node_modules/improv-wifi-serial-sdk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/improv-wifi-serial-sdk/-/improv-wifi-serial-sdk-2.3.0.tgz", - "integrity": "sha512-z5wiuM0uAiLL/Ifc2ZwdEBpGqpjJsUv0MS12kRqMgI01C8mn58ZSEVwoxExpOPUfX8dZL5kdrpYygqM+VfhCJQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/improv-wifi-serial-sdk/-/improv-wifi-serial-sdk-2.4.0.tgz", + "integrity": "sha512-QiWbGMZdXN4LsyiS0hml0NY9D5hpmje1092SrKcFzGTuAiHpOJOfNTalD/Zl3hAd1LuN4XJLS3JCfa6ntoV8KQ==", "dependencies": { "@material/mwc-button": "^0.27.0", "@material/mwc-circular-progress": "^0.27.0", "@material/mwc-dialog": "^0.27.0", + "@material/mwc-icon-button": "^0.27.0", "@material/mwc-list": "^0.27.0", "@material/mwc-select": "^0.27.0", "@material/mwc-textfield": "^0.27.0", @@ -4525,13 +4526,14 @@ "dev": true }, "improv-wifi-serial-sdk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/improv-wifi-serial-sdk/-/improv-wifi-serial-sdk-2.3.0.tgz", - "integrity": "sha512-z5wiuM0uAiLL/Ifc2ZwdEBpGqpjJsUv0MS12kRqMgI01C8mn58ZSEVwoxExpOPUfX8dZL5kdrpYygqM+VfhCJQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/improv-wifi-serial-sdk/-/improv-wifi-serial-sdk-2.4.0.tgz", + "integrity": "sha512-QiWbGMZdXN4LsyiS0hml0NY9D5hpmje1092SrKcFzGTuAiHpOJOfNTalD/Zl3hAd1LuN4XJLS3JCfa6ntoV8KQ==", "requires": { "@material/mwc-button": "^0.27.0", "@material/mwc-circular-progress": "^0.27.0", "@material/mwc-dialog": "^0.27.0", + "@material/mwc-icon-button": "^0.27.0", "@material/mwc-list": "^0.27.0", "@material/mwc-select": "^0.27.0", "@material/mwc-textfield": "^0.27.0", diff --git a/package.json b/package.json index b818ca9..46bae73 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@material/mwc-icon-button": "^0.27.0", "@material/mwc-textfield": "^0.27.0", "esptool-js": "github:espressif/esptool-js#076af269f44daa5b7823031221f39bf22124c129", - "improv-wifi-serial-sdk": "^2.3.0", + "improv-wifi-serial-sdk": "^2.4.0", "lit": "^2.5.0", "pako": "^2.1.0", "tslib": "^2.4.1" diff --git a/src/components/svg.ts b/src/components/svg.ts index a9cb145..e7f2367 100644 --- a/src/components/svg.ts +++ b/src/components/svg.ts @@ -25,3 +25,12 @@ export const chipIcon = svg` /> `; + +export const refreshIcon = svg` + +`; diff --git a/src/install-dialog.ts b/src/install-dialog.ts index 36485a0..6e2c3d6 100644 --- a/src/install-dialog.ts +++ b/src/install-dialog.ts @@ -12,7 +12,12 @@ import "./components/ewt-select"; import "./components/ewt-list-item"; import "./pages/ewt-page-progress"; import "./pages/ewt-page-message"; -import { chipIcon, closeIcon, firmwareIcon } from "./components/svg"; +import { + chipIcon, + closeIcon, + firmwareIcon, + refreshIcon, +} from "./components/svg"; import { Logger, Manifest, FlashStateType, FlashState } from "./const.js"; import { ImprovSerial, Ssid } from "improv-wifi-serial-sdk/dist/serial"; import { @@ -74,8 +79,8 @@ export class EwtInstallDialog extends LitElement { // null = not available @state() private _ssids?: Ssid[] | null; - // -1 = custom - @state() private _selectedSsid = -1; + // Name of Ssid. Null = other + @state() private _selectedSsid: string | null = null; protected render() { if (!this.port) { @@ -416,6 +421,10 @@ export class EwtInstallDialog extends LitElement { error = "Unable to connect"; break; + case ImprovSerialErrorState.TIMEOUT: + error = "Timeout"; + break; + case ImprovSerialErrorState.NO_ERROR: // Happens when list SSIDs not supported. case ImprovSerialErrorState.UNKNOWN_RPC_COMMAND: @@ -424,6 +433,9 @@ export class EwtInstallDialog extends LitElement { default: error = `Unknown error (${this._client!.error})`; } + const selectedSsid = this._ssids?.find( + (info) => info.name === this._selectedSsid + ); content = html`