diff --git a/npm/ng-packs/packages/theme-basic/src/lib/actions/layout.actions.ts b/npm/ng-packs/packages/theme-basic/src/lib/actions/layout.actions.ts index 899953b86d..ddc901fc6e 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/actions/layout.actions.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/actions/layout.actions.ts @@ -4,3 +4,8 @@ export class LayoutAddNavigationElement { static readonly type = '[Layout] Add Navigation Element'; constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {} } + +export class LayoutRemoveNavigationElementByName { + static readonly type = '[Layout] Remove Navigation ElementByName'; + constructor(public name: string) {} +} diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html index 60712cee30..be9eee5775 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html @@ -89,10 +89,6 @@ - - - - + + + + diff --git a/npm/ng-packs/packages/theme-basic/src/lib/states/layout.state.ts b/npm/ng-packs/packages/theme-basic/src/lib/states/layout.state.ts index 42ba5f46be..97a0825481 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/states/layout.state.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/states/layout.state.ts @@ -1,5 +1,5 @@ import { State, Action, StateContext, Selector } from '@ngxs/store'; -import { LayoutAddNavigationElement } from '../actions/layout.actions'; +import { LayoutAddNavigationElement, LayoutRemoveNavigationElementByName } from '../actions/layout.actions'; import { Layout } from '../models/layout'; import { TemplateRef } from '@angular/core'; import snq from 'snq'; @@ -15,7 +15,7 @@ export class LayoutState { } @Action(LayoutAddNavigationElement) - layoutAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) { + layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: LayoutAddNavigationElement) { let { navigationElements } = getState(); if (!Array.isArray(payload)) { @@ -42,4 +42,22 @@ export class LayoutState { navigationElements, }); } + + @Action(LayoutRemoveNavigationElementByName) + layoutRemoveAction( + { getState, patchState }: StateContext, + { name }: LayoutRemoveNavigationElementByName, + ) { + let { navigationElements } = getState(); + + const index = navigationElements.findIndex(element => element.name === name); + + if (index > -1) { + navigationElements = navigationElements.splice(index, 1); + } + + return patchState({ + navigationElements, + }); + } }