installer components no longer crash when not provided with a context

This commit is contained in:
JesmoDev
2022-07-27 10:06:13 +02:00
committed by Jacob Overgaard
parent ab8ee215b6
commit a64512ea01
3 changed files with 18 additions and 18 deletions

View File

@@ -48,10 +48,10 @@ export class UmbInstallerConsent extends UmbContextConsumerMixin(LitElement) {
private _telemetryLevels: TelemetryModel[] = [];
@state()
private _telemetryFormData!: TelemetryModel['level'];
private _telemetryFormData?: TelemetryModel['level'];
@state()
private _installerStore!: UmbInstallerContext;
private _installerStore?: UmbInstallerContext;
private storeDataSubscription?: Subscription;
private storeSettingsSubscription?: Subscription;
@@ -85,7 +85,7 @@ export class UmbInstallerConsent extends UmbContextConsumerMixin(LitElement) {
const value: { [key: string]: string } = {};
value[target.name] = this._telemetryLevels[parseInt(target.value) - 1].level;
this._installerStore.appendData(value);
this._installerStore?.appendData(value);
}
private _onNext() {
@@ -105,7 +105,7 @@ export class UmbInstallerConsent extends UmbContextConsumerMixin(LitElement) {
}
private _renderSlider() {
if (!this._telemetryLevels) return;
if (!this._telemetryLevels || this._telemetryLevels.length < 1) return;
return html`
<uui-slider

View File

@@ -99,7 +99,7 @@ export class UmbInstallerDatabase extends UmbContextConsumerMixin(LitElement) {
private _preConfiguredDatabase?: UmbracoInstallerDatabaseModel;
@state()
private _installerStore!: UmbInstallerContext;
private _installerStore?: UmbInstallerContext;
private storeDataSubscription?: Subscription;
private storeSettingsSubscription?: Subscription;
@@ -142,9 +142,9 @@ export class UmbInstallerDatabase extends UmbContextConsumerMixin(LitElement) {
const value: { [key: string]: string | boolean } = {};
value[target.name] = target.checked ?? target.value; // handle boolean and text inputs
const database = { ...this._installerStore.getData().database, ...value };
const database = { ...this._installerStore?.getData().database, ...value };
this._installerStore.appendData({ database });
this._installerStore?.appendData({ database });
}
private _handleSubmit = (e: SubmitEvent) => {
@@ -167,7 +167,7 @@ export class UmbInstallerDatabase extends UmbContextConsumerMixin(LitElement) {
const useIntegratedAuthentication = formData.has('useIntegratedAuthentication');
const database = {
...this._installerStore.getData().database,
...this._installerStore?.getData().database,
id,
username,
password,
@@ -176,10 +176,10 @@ export class UmbInstallerDatabase extends UmbContextConsumerMixin(LitElement) {
useIntegratedAuthentication,
} as UmbracoPerformInstallDatabaseConfiguration;
this._installerStore.appendData({ database });
this._installerStore?.appendData({ database });
}
this._installerStore.requestInstall().then(this._handleFulfilled.bind(this), this._handleRejected.bind(this));
this._installerStore?.requestInstall().then(this._handleFulfilled.bind(this), this._handleRejected.bind(this));
this._installButton.state = 'waiting';
};
private _handleFulfilled() {
@@ -195,7 +195,7 @@ export class UmbInstallerDatabase extends UmbContextConsumerMixin(LitElement) {
}
private get selectedDatabase() {
const id = this._installerStore.getData().database?.id;
const id = this._installerStore?.getData().database?.id;
console.log('selected id', id, this._databases);
return this._databases.find((x) => x.id === id) ?? this._databases[0];
}

View File

@@ -57,10 +57,10 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
];
@state()
private _userFormData!: { name: string; password: string; email: string; subscribeToNewsletter: boolean };
private _userFormData?: { name: string; password: string; email: string; subscribeToNewsletter: boolean };
@state()
private _installerStore!: UmbInstallerContext;
private _installerStore?: UmbInstallerContext;
private installerStoreSubscription?: Subscription;
@@ -101,7 +101,7 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
const email = formData.get('email');
const subscribeToNewsletter = formData.has('subscribeToNewsletter');
this._installerStore.appendData({ user: { name, password, email, subscribeToNewsletter } });
this._installerStore?.appendData({ user: { name, password, email, subscribeToNewsletter } });
this.dispatchEvent(new CustomEvent('next', { bubbles: true, composed: true }));
};
@@ -115,7 +115,7 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
<uui-input
type="text"
id="name"
.value=${this._userFormData.name}
.value=${this._userFormData?.name}
name="name"
required
required-message="Name is required"></uui-input>
@@ -126,7 +126,7 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
<uui-input
type="email"
id="email"
.value=${this._userFormData.email}
.value=${this._userFormData?.email}
name="email"
required
required-message="Email is required"></uui-input>
@@ -137,7 +137,7 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
<uui-input-password
id="password"
name="password"
.value=${this._userFormData.password}
.value=${this._userFormData?.password}
required
required-message="Password is required"></uui-input-password>
</uui-form-layout-item>
@@ -146,7 +146,7 @@ export class UmbInstallerUser extends UmbContextConsumerMixin(LitElement) {
<uui-checkbox
name="subscribeToNewsletter"
label="Remember me"
.checked=${this._userFormData.subscribeToNewsletter}>
.checked=${this._userFormData?.subscribeToNewsletter || false}>
Keep me updated on Umbraco Versions, Security Bulletins and Community News
</uui-checkbox>
</uui-form-layout-item>