Browse Source

UI: trendz settings fixes

pull/13301/head
yuliaklochai 1 year ago
parent
commit
f6bb9be780
  1. 23
      ui-ngx/src/app/modules/home/pages/admin/trendz-settings.component.ts

23
ui-ngx/src/app/modules/home/pages/admin/trendz-settings.component.ts

@ -14,15 +14,14 @@
/// limitations under the License.
///
import { Component, OnInit } from '@angular/core';
import { Component, OnInit, DestroyRef } from '@angular/core';
import { PageComponent } from '@shared/components/page.component';
import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard';
import { select, Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { TrendzSettingsService } from '@core/http/trendz-settings.service';
import { TrendzSettings } from '@shared/models/trendz-settings.models';
import { isDefinedAndNotNull } from '@core/utils';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@Component({
selector: 'tb-trendz-settings',
@ -33,10 +32,10 @@ export class TrendzSettingsComponent extends PageComponent implements OnInit, Ha
trendzSettingsForm: FormGroup;
constructor(protected store: Store<AppState>,
private fb: FormBuilder,
private trendzSettingsService: TrendzSettingsService) {
super(store);
constructor(private fb: FormBuilder,
private trendzSettingsService: TrendzSettingsService,
private destroyRef: DestroyRef) {
super();
}
ngOnInit() {
@ -50,26 +49,26 @@ export class TrendzSettingsComponent extends PageComponent implements OnInit, Ha
});
this.trendzSettingsForm.get('isTrendzEnabled').valueChanges
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((enabled: boolean) => this.toggleUrlRequired(enabled));
}
toggleUrlRequired(enabled: boolean) {
const trendzUrlControl = this.trendzSettingsForm.get('trendzUrl')!;
const validators = [Validators.pattern(/^(https?:\/\/)[^\s/$.?#].[^\s]*$/i)];
if (enabled) {
validators.push(Validators.required);
trendzUrlControl.addValidators(Validators.required);
} else {
trendzUrlControl.removeValidators(Validators.required);
}
trendzUrlControl.setValidators(validators);
trendzUrlControl.updateValueAndValidity();
}
setTrendzSettings(trendzSettings: TrendzSettings) {
this.trendzSettingsForm.reset({
trendzUrl: trendzSettings?.baseUrl,
isTrendzEnabled: isDefinedAndNotNull(trendzSettings?.enabled) ?
trendzSettings?.enabled : false
isTrendzEnabled: trendzSettings?.enabled ?? false
});
this.toggleUrlRequired(this.trendzSettingsForm.get('isTrendzEnabled').value);

Loading…
Cancel
Save