Browse Source

refactor(core): change parameter type of addReplaceableComponent action

#2404
pull/2522/head
mehmet-erim 7 years ago
parent
commit
a22d50fc16
  1. 2
      npm/ng-packs/packages/core/src/lib/actions/replaceable-components.actions.ts
  2. 6
      npm/ng-packs/packages/core/src/lib/core.module.ts
  3. 4
      npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts
  4. 24
      npm/ng-packs/packages/core/src/lib/states/replaceable-components.state.ts
  5. 4
      npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts

2
npm/ng-packs/packages/core/src/lib/actions/replaceable-components.actions.ts

@ -2,5 +2,5 @@ import { ReplaceableComponents } from '../models/replaceable-components';
export class AddReplaceableComponent { export class AddReplaceableComponent {
static readonly type = '[ReplaceableComponents] Add'; static readonly type = '[ReplaceableComponents] Add';
constructor(public payload: ReplaceableComponents.Data | ReplaceableComponents.Data[]) {} constructor(public payload: ReplaceableComponents.ReplaceableComponent) {}
} }

6
npm/ng-packs/packages/core/src/lib/core.module.ts

@ -83,7 +83,11 @@ import { ReplaceableComponentsState } from './states/replaceable-components.stat
ReplaceableRouteContainerComponent, ReplaceableRouteContainerComponent,
], ],
providers: [LocalizationPipe], providers: [LocalizationPipe],
entryComponents: [RouterOutletComponent, DynamicLayoutComponent], entryComponents: [
RouterOutletComponent,
DynamicLayoutComponent,
ReplaceableRouteContainerComponent,
],
}) })
export class CoreModule { export class CoreModule {
static forRoot(options = {} as ABP.Root): ModuleWithProviders { static forRoot(options = {} as ABP.Root): ModuleWithProviders {

4
npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts

@ -2,10 +2,10 @@ import { Type } from '@angular/core';
export namespace ReplaceableComponents { export namespace ReplaceableComponents {
export interface State { export interface State {
replaceableComponents: Data[]; replaceableComponents: ReplaceableComponent[];
} }
export interface Data { export interface ReplaceableComponent {
component: Type<any>; component: Type<any>;
key: string; key: string;
} }

24
npm/ng-packs/packages/core/src/lib/states/replaceable-components.state.ts

@ -11,15 +11,15 @@ export class ReplaceableComponentsState {
@Selector() @Selector()
static getAll({ static getAll({
replaceableComponents, replaceableComponents,
}: ReplaceableComponents.State): ReplaceableComponents.Data[] { }: ReplaceableComponents.State): ReplaceableComponents.ReplaceableComponent[] {
return replaceableComponents || []; return replaceableComponents || [];
} }
static getOne(key: string) { static getComponent(key: string) {
const selector = createSelector( const selector = createSelector(
[ReplaceableComponentsState], [ReplaceableComponentsState],
({ replaceableComponents }: ReplaceableComponents.State) => { (state: ReplaceableComponents.State): ReplaceableComponents.ReplaceableComponent => {
return snq(() => replaceableComponents.find(component => component.key === key)); return snq(() => state.replaceableComponents.find(component => component.key === key));
}, },
); );
@ -31,14 +31,20 @@ export class ReplaceableComponentsState {
{ getState, patchState }: StateContext<ReplaceableComponents.State>, { getState, patchState }: StateContext<ReplaceableComponents.State>,
{ payload }: AddReplaceableComponent, { payload }: AddReplaceableComponent,
) { ) {
if (!Array.isArray(payload)) { let { replaceableComponents } = getState();
payload = [payload];
} if (replaceableComponents && replaceableComponents.length) {
const index = replaceableComponents.findIndex(component => component.key === payload.key);
const { replaceableComponents } = getState(); if (index > -1) {
replaceableComponents[index] = payload;
}
} else {
replaceableComponents = [...replaceableComponents, payload];
}
patchState({ patchState({
replaceableComponents: [...replaceableComponents, ...payload], replaceableComponents,
}); });
} }
} }

4
npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts

@ -24,7 +24,7 @@ const routes: Routes = [
data: { data: {
requiredPolicy: 'AbpIdentity.Roles', requiredPolicy: 'AbpIdentity.Roles',
component: { component: {
key: 'AbpIdentity.Roles', key: 'Identity.RolesComponent',
default: RolesComponent, default: RolesComponent,
} as ABP.ComponentData<RolesComponent>, } as ABP.ComponentData<RolesComponent>,
}, },
@ -35,7 +35,7 @@ const routes: Routes = [
data: { data: {
requiredPolicy: 'AbpIdentity.Users', requiredPolicy: 'AbpIdentity.Users',
component: { component: {
key: 'AbpIdentity.Roles', key: 'Identity.UsersComponent',
default: UsersComponent, default: UsersComponent,
} as ABP.ComponentData<UsersComponent>, } as ABP.ComponentData<UsersComponent>,
}, },

Loading…
Cancel
Save