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 513fff43ff42b6722792426dbee1940ab472440a..185519656b29dee8fb266e2a3e91ee4f1d226d13 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 6d8a2ce47e5229d16929478e4930b4f64414003c..1e906af44eb1fc69c9dd20975ea0f216102a8f09 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 6d272741c35070cbdac6f1486cc649c0ebb6ccc2..2e91099de8de2d19f7b25a0bb54d886fe24307ec 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 3125938143509363ebd7052de4c5a8d4219d7353..f8b7534f40aa7ed0d1b4eff28b6934609d3f4306 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 a6f7d6721fa733b0de87fbdea007278002bfae39..9a6c674019f4aa856c0c7445ffaecbb056576a3f 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 ef806d5a6154d48bc2714802d4ce72be357272f0..5a44869e34a962424b6ce955f286806b8a12edee 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 2d525b16e4c0711fd8779f9d5c800810e6faa784..53dae15839a9eec6458c5cdafd9cc2e9bb8c7d12 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 16f44fbc2151d5c98bb35f3e85593a0ce2dcdbe9..deb1b0256ad1e73891becc9cbaab4f3f9cb3337f 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 b52870f4d9fcc8566f5242d6e60a6ac147fa991d..b750344d0fa90ffc5658626dfc8f1e50fb24ae1a 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