installer components no longer crash when not provided with a context
This commit is contained in:
committed by
Jacob Overgaard
parent
ab8ee215b6
commit
a64512ea01
@@ -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
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user