From fc4e75c30f180c7cf2a95590a2821778f3c0fa80 Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Fri, 10 Jun 2022 14:50:42 +0300 Subject: [PATCH] update injector value on record input change --- .../page-toolbar/page-toolbar.component.html | 5 +--- .../page-toolbar/page-toolbar.component.ts | 5 ++-- .../src/lib/pipes/create-injector.pipe.ts | 23 +++++++++---------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html index 4cf968e6de..30a58c7772 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html @@ -8,10 +8,7 @@ diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts index db5c9cd167..a358924461 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts @@ -16,10 +16,11 @@ import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.c changeDetection: ChangeDetectionStrategy.OnPush, }) export class PageToolbarComponent extends AbstractActionsComponent> { + getData = () => this.data; + readonly trackByFn: TrackByFunction> = (_, item) => item.action || item.component; - - constructor(private readonly injector: Injector) { + constructor(public readonly injector: Injector) { super(injector); } } diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts index 6569447198..0268f6b539 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts @@ -1,28 +1,27 @@ import { InjectFlags, InjectionToken, Injector, Pipe, PipeTransform, Type } from '@angular/core'; -import { InferredData, ToolbarComponent } from '../models/toolbar-actions'; -import { - EXTENSIONS_ACTION_CALLBACK, - EXTENSIONS_ACTION_DATA, -} from '@abp/ng.theme.shared/extensions'; -import { ReadonlyActionData } from '../models/actions'; +import { ToolbarComponent } from '../models/toolbar-actions'; +import { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/extensions.token'; +import { PageToolbarComponent } from '../components/page-toolbar/page-toolbar.component'; @Pipe({ name: 'createInjector', }) export class CreateInjectorPipe implements PipeTransform { - constructor(private injector: Injector) {} - public transform( + _: any, action: ToolbarComponent, - componentData: ReadonlyActionData, - getInjectedFn: InferredData['getInjected'], + context: PageToolbarComponent, ): Injector { const get = (token: Type | InjectionToken, notFoundValue?: T, flags?: InjectFlags) => { + const componentData = context.getData(); return token === EXTENSIONS_ACTION_DATA ? componentData : token === EXTENSIONS_ACTION_CALLBACK - ? (data = componentData) => action.action(data) - : getInjectedFn.call(this.injector, token, notFoundValue, flags); + ? data => { + data = data ?? context.getData(); + return action.action(data); + } + : context.getInjected.call(context.injector, token, notFoundValue, flags); }; return { get }; }