diff --git a/src/install-dialog.ts b/src/install-dialog.ts
index f29eccb..73a667e 100644
--- a/src/install-dialog.ts
+++ b/src/install-dialog.ts
@@ -55,6 +55,7 @@ class EwtInstallDialog extends LitElement {
@state() private _installState?: FlashState;
@state() private _provisionForce = false;
+ private _wasProvisioned = false;
@state() private _error?: string;
@@ -246,44 +247,37 @@ class EwtInstallDialog extends LitElement {
heading = undefined;
content = html`
${messageTemplate(OK_ICON, "Device connected to the network!")}
- ${
- // If we went to provision after installing the firmware with a full erase,
- // there is nothing left for the user, let them go to the device dashboard
- // if available
- this._installState?.state === FlashStateType.FINISHED &&
- this._installErase &&
- this._client!.nextUrl !== undefined
- ? html`
- {
- this._state = "DASHBOARD";
- }}
- >
-
-
- {
- this._state = "DASHBOARD";
- this._installState = undefined;
- }}
- >
- `
- : html`
- {
- this._state = "DASHBOARD";
- }}
- >
- `
- }
+ ${!this._wasProvisioned && this._client!.nextUrl !== undefined
+ ? html`
+ {
+ this._state = "DASHBOARD";
+ }}
+ >
+
+
+ {
+ this._state = "DASHBOARD";
+ this._installState = undefined;
+ }}
+ >
+ `
+ : html`
+ {
+ this._state = "DASHBOARD";
+ }}
+ >
+ `}
`;
} else {
let error: string | undefined;
@@ -597,6 +591,8 @@ class EwtInstallDialog extends LitElement {
private async _doProvision() {
this._busy = true;
+ this._wasProvisioned =
+ this._client!.state === ImprovSerialCurrentState.PROVISIONED;
const ssid = (
this.shadowRoot!.querySelector("ewt-textfield[name=ssid]") as EwtTextfield
).value;