diff --git a/src/app/adf-schema/df-table-details/df-table-details.types.ts b/src/app/adf-schema/df-table-details/df-table-details.types.ts index 29e40aca..36bd7fc2 100644 --- a/src/app/adf-schema/df-table-details/df-table-details.types.ts +++ b/src/app/adf-schema/df-table-details/df-table-details.types.ts @@ -1,4 +1,3 @@ -// TODO fix all any types export interface TableDetailsType { alias?: string; name: string; diff --git a/src/app/shared/components/df-field-array/df-array-field.component.ts b/src/app/shared/components/df-field-array/df-array-field.component.ts index 8d805bbc..4aca066a 100644 --- a/src/app/shared/components/df-field-array/df-array-field.component.ts +++ b/src/app/shared/components/df-field-array/df-array-field.component.ts @@ -133,15 +133,22 @@ export class DfArrayFieldComponent implements OnInit, ControlValueAccessor { this.fieldArray = this.fb.array([]); } - writeValue(value?: Array): void { - if (value && this.schema.type === 'array') { + writeValue(value?: Array | { [key: string]: any }): void { + if (value && Array.isArray(value) && this.schema.type === 'array') { if (this.schema.items === 'string') { this.fieldArray = this.fb.array(value.map(v => new FormControl(v))); } else { this.fieldArray = this.fb.array(value.map(v => this.createGroup(v))); } } else if (value && this.schema.type === 'object') { - // TODO do something + this.fieldArray = this.fb.array( + Object.keys(value).map(key => + this.createGroup({ + key, + value: (value as { [key: string]: any })[key], + }) + ) + ); } this.fieldArray.valueChanges .pipe(