UI: Refactoring widget action use signal input additionalWidgetActionTypes

This commit is contained in:
Vladyslav_Prykhodko 2025-03-31 15:28:55 +03:00
parent d92d32eec0
commit d28f372d93
2 changed files with 11 additions and 17 deletions

View File

@ -37,7 +37,7 @@
<div translate>widget-config.action</div> <div translate>widget-config.action</div>
<mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic"> <mat-form-field class="flex-1" appearance="outline" subscriptSizing="dynamic">
<mat-select required formControlName="type" placeholder="{{ 'widget-config.set' | translate }}"> <mat-select required formControlName="type" placeholder="{{ 'widget-config.set' | translate }}">
<mat-option *ngFor="let actionType of widgetActionTypes" [value]="actionType"> <mat-option *ngFor="let actionType of actionTypes()" [value]="actionType">
{{ widgetActionTypeTranslations.get(widgetActionType[actionType]) | translate }} {{ widgetActionTypeTranslations.get(widgetActionType[actionType]) | translate }}
</mat-option> </mat-option>
</mat-select> </mat-select>

View File

@ -26,7 +26,7 @@ import {
ValidatorFn, ValidatorFn,
Validators Validators
} from '@angular/forms'; } from '@angular/forms';
import { Component, ElementRef, forwardRef, Input, OnInit, ViewChild } from '@angular/core'; import { Component, computed, ElementRef, forwardRef, input, Input, OnInit, ViewChild } from '@angular/core';
import { import {
MapItemType, MapItemType,
mapItemTypeTranslationMap, mapItemTypeTranslationMap,
@ -102,19 +102,16 @@ export class WidgetActionComponent implements ControlValueAccessor, OnInit, Vali
@Input() @Input()
actionNames: string[]; actionNames: string[];
@Input() additionalWidgetActionTypes = input<WidgetActionType[]>(null);
set additionalWidgetActionTypes(value: WidgetActionType[]) {
if (this.widgetActionFormGroup && !widgetActionTypes.includes(this.widgetActionFormGroup.get('type').value)) { actionTypes = computed(() => {
this.widgetActionFormGroup.get('type').setValue(WidgetActionType.doNothing); const predefinedActionTypes = widgetActionTypes;
} if (this.additionalWidgetActionTypes()?.length) {
if (value?.length) { return predefinedActionTypes.concat(this.additionalWidgetActionTypes());
this.widgetActionTypes = widgetActionTypes.concat(value); }
} else { return predefinedActionTypes;
this.widgetActionTypes = widgetActionTypes; });
}
}
widgetActionTypes = widgetActionTypes;
widgetActionTypeTranslations = widgetActionTypeTranslationMap; widgetActionTypeTranslations = widgetActionTypeTranslationMap;
widgetActionType = WidgetActionType; widgetActionType = WidgetActionType;
@ -191,9 +188,6 @@ export class WidgetActionComponent implements ControlValueAccessor, OnInit, Vali
).subscribe(() => { ).subscribe(() => {
this.widgetActionUpdated(); this.widgetActionUpdated();
}); });
if (this.additionalWidgetActionTypes) {
this.widgetActionTypes = this.widgetActionTypes.concat(this.additionalWidgetActionTypes);
}
} }
writeValue(widgetAction?: WidgetAction): void { writeValue(widgetAction?: WidgetAction): void {