From c234b8b8570e8df555e3effd06631fc9e595fa5d Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 9 Nov 2022 14:57:19 +0100 Subject: [PATCH] OZG-2943 OZG-3103 empty State too if Clear event --- .../vorgang-search.component.spec.ts | 1 + .../vorgang-search/vorgang-search.component.ts | 8 ++++---- .../src/lib/+state/vorgang.actions.ts | 2 ++ .../src/lib/+state/vorgang.facade.spec.ts | 9 +++++++++ .../src/lib/+state/vorgang.facade.ts | 4 ++++ .../src/lib/+state/vorgang.reducer.spec.ts | 14 ++++++++++++++ .../src/lib/+state/vorgang.reducer.ts | 7 ++++++- .../src/lib/vorgang-list.service.spec.ts | 8 ++++++++ .../vorgang-shared/src/lib/vorgang-list.service.ts | 4 ++++ 9 files changed, 52 insertions(+), 5 deletions(-) diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts index 513fff43ff..185519656b 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts @@ -103,6 +103,7 @@ describe('VorgangSearchComponent', () => { component.clearVorgangSearchPreviewList(); expect(component.vorgangSearchPreviewList).toEqual(emptyResource); + expect(vorgangListService.clearSearchPreviewList).toHaveBeenCalled(); }) }) }); \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts index 6d8a2ce47e..1e906af44e 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts @@ -1,6 +1,6 @@ import { Component, Input } from '@angular/core'; -import { createEmptyStateResource, StateResource } from '@goofy-client/tech-shared'; -import { VorgangHeaderLinkRel, VorgangListLinkRel, VorgangListResource } from '@goofy-client/vorgang-shared'; +import { StateResource } from '@goofy-client/tech-shared'; +import { VorgangHeaderLinkRel, VorgangListLinkRel, VorgangListResource, VorgangListService } from '@goofy-client/vorgang-shared'; import { VorgangSearchFormService } from './vorgang-search.formservice'; @Component({ @@ -16,9 +16,9 @@ export class VorgangSearchComponent { readonly vorgangHeaderLinkRel = VorgangHeaderLinkRel; readonly vorgangListLinkRel = VorgangListLinkRel; - constructor(public formService: VorgangSearchFormService) { } + constructor(public formService: VorgangSearchFormService, public vorgangListService: VorgangListService) { } clearVorgangSearchPreviewList() { - this.vorgangSearchPreviewList = createEmptyStateResource(); + this.vorgangListService.clearSearchPreviewList(); } } \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.actions.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.actions.ts index 6d272741c3..2e91099de8 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.actions.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.actions.ts @@ -50,3 +50,5 @@ export const loadNextPageSuccess: VorgangActionCreator<VorgangListAction> = crea export const searchForPreview: VorgangActionCreator<StringBasedProps> = createAction('[Vorgang] Search for preview', props<StringBasedProps>()); export const searchForPreviewSuccess: VorgangActionCreator<VorgangListAction> = createAction('[Vorgang] Search for preview Success', props<VorgangListAction>()); export const searchForPreviewFailure: VorgangActionCreator<HttpErrorAction> = createAction('[Vorgang] Search for preview Failure', props<HttpErrorAction>()); + +export const clearSearchPreviewList: TypedActionCreator = createAction('[Vorgang] Clear search preview list'); \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.spec.ts index 3125938143..f8b7534f40 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.spec.ts @@ -138,4 +138,13 @@ describe('VorgangFacade', () => { selectionSubject.next(saerchPreviewListStateResource); }); }) + + describe('clearSearchPreviewList', () => { + + it('should dispatch "clearSearchPreviewList" action', () => { + facade.clearSearchPreviewList(); + + expect(store.dispatch).toHaveBeenCalledWith(VorgangActions.clearSearchPreviewList()); + }); + }) }) \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.ts index a6f7d6721f..9a6c674019 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.facade.ts @@ -47,4 +47,8 @@ export class VorgangFacade { public getSearchPreviewList(): Observable<StateResource<VorgangListResource>> { return this.store.select(VorgangSelectors.searchPreviewList); } + + public clearSearchPreviewList(): void { + this.store.dispatch(VorgangActions.clearSearchPreviewList()); + } } \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts index ef806d5a61..5a44869e34 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts @@ -240,6 +240,20 @@ describe('Vorgang Reducer', () => { }) }) + describe('clearSearchPreviewList', () => { + + describe('on "clearSearchPreviewList" action', () => { + + it('should empty searchPreviewList', () => { + const action = VorgangActions.clearSearchPreviewList(); + + const state: VorgangState = reducer(initialState, action); + + expect(state.searchPreviewList.resource).toBeNull(); + }) + }) + }) + describe('on "updateCurrentReouteData" action', () => { const routeData: RouteData = createRouteData(); diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts index 2d525b16e4..53dae15839 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts @@ -97,7 +97,12 @@ const vorgangReducer = createReducer( on(NavigationActions.updateCurrentRouteData, (state, action): VorgangState => { return buildStateOnNavigation(state, action.routeData); - }) + }), + + on(VorgangActions.clearSearchPreviewList, (state: VorgangState): VorgangState => ({ + ...state, + searchPreviewList: createEmptyStateResource() + })) ); function buildStateOnNavigation(state: VorgangState, routeData: RouteData): VorgangState { diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts index 16f44fbc21..deb1b0256a 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts @@ -254,4 +254,12 @@ describe('VorgangListService', () => { }) }) }) + + describe('clearSearchPreviewList', () => { + it('should call facade clearSearchPreviewList', () => { + service.clearSearchPreviewList(); + + expect(vorgangFacade.clearSearchPreviewList).toHaveBeenCalled(); + }) + }) }) \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts index b52870f4d9..b750344d0f 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts @@ -66,4 +66,8 @@ export class VorgangListService { shouldSearchForPreview(previewList: StateResource<VorgangListResource>, searchString: string): boolean { return previewList.reload && !previewList.loading && (searchString != EMPTY_STRING); } + + public clearSearchPreviewList(): void { + this.vorgangFacade.clearSearchPreviewList(); + } } \ No newline at end of file -- GitLab