Offer setup device if device was not provisioned (#94)

This commit is contained in:
Paulus Schoutsen 2021-11-10 10:16:25 -08:00 committed by GitHub
parent e63743bfba
commit 69eec42e7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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`
<a
slot="primaryAction"
href=${this._client!.nextUrl}
class="has-button"
target="_blank"
@click=${() => {
this._state = "DASHBOARD";
}}
>
<ewt-button label="Set up Device"></ewt-button>
</a>
<ewt-button
slot="secondaryAction"
label="Skip"
@click=${() => {
this._state = "DASHBOARD";
this._installState = undefined;
}}
></ewt-button>
`
: html`
<ewt-button
slot="primaryAction"
label="Continue"
@click=${() => {
this._state = "DASHBOARD";
}}
></ewt-button>
`
}
${!this._wasProvisioned && this._client!.nextUrl !== undefined
? html`
<a
slot="primaryAction"
href=${this._client!.nextUrl}
class="has-button"
target="_blank"
@click=${() => {
this._state = "DASHBOARD";
}}
>
<ewt-button label="Set up Device"></ewt-button>
</a>
<ewt-button
slot="secondaryAction"
label="Skip"
@click=${() => {
this._state = "DASHBOARD";
this._installState = undefined;
}}
></ewt-button>
`
: html`
<ewt-button
slot="primaryAction"
label="Continue"
@click=${() => {
this._state = "DASHBOARD";
}}
></ewt-button>
`}
`;
} 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;