From b71bddd614f2f0b192201ba235f8f01d0b52e82e Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Fri, 24 Aug 2018 19:53:05 +0000 Subject: [PATCH] Merged in bugfix/SHIBUI-785 (pull request #179) SHIBUI-785 Fixed issue with flicker of old filters loading Approved-by: Shibui Jenkins --- .../provider/action/collection.action.ts | 9 ++++++++- .../container/provider-select.component.ts | 18 +++++++++++++----- .../provider/reducer/collection.reducer.ts | 7 +++++++ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ui/src/app/metadata/provider/action/collection.action.ts b/ui/src/app/metadata/provider/action/collection.action.ts index 3eb1f1889..a58164407 100644 --- a/ui/src/app/metadata/provider/action/collection.action.ts +++ b/ui/src/app/metadata/provider/action/collection.action.ts @@ -33,6 +33,8 @@ export enum ProviderCollectionActionTypes { CHANGE_PROVIDER_ORDER_UP = '[Metadata Provider Collection] Change Order Up', CHANGE_PROVIDER_ORDER_DOWN = '[Metadata Provider Collection] Change Order Down', + + CLEAR_SELECTION = '[Metadata Provider Collection] Clear Provider Selection' } export class LoadProviderRequest implements Action { @@ -173,6 +175,10 @@ export class ChangeProviderOrderDown implements Action { constructor(public payload: string) { } } +export class ClearProviderSelection implements Action { + readonly type = ProviderCollectionActionTypes.CLEAR_SELECTION; +} + export type ProviderCollectionActionsUnion = | LoadProviderRequest | LoadProviderSuccess @@ -196,4 +202,5 @@ export type ProviderCollectionActionsUnion = | GetOrderProviderSuccess | GetOrderProviderFail | ChangeProviderOrderUp - | ChangeProviderOrderDown; + | ChangeProviderOrderDown + | ClearProviderSelection; diff --git a/ui/src/app/metadata/provider/container/provider-select.component.ts b/ui/src/app/metadata/provider/container/provider-select.component.ts index a540df912..1e64aaae6 100644 --- a/ui/src/app/metadata/provider/container/provider-select.component.ts +++ b/ui/src/app/metadata/provider/container/provider-select.component.ts @@ -4,11 +4,13 @@ import { Store } from '@ngrx/store'; import { ActivatedRoute } from '@angular/router'; import { map, distinctUntilChanged, skipWhile } from 'rxjs/operators'; -import { SelectProviderRequest } from '../action/collection.action'; +import { SelectProviderRequest, ClearProviderSelection } from '../action/collection.action'; import * as fromProviders from '../reducer'; import { MetadataProvider } from '../../domain/model'; -import { SetDefinition } from '../../../wizard/action/wizard.action'; +import { SetDefinition, ClearWizard } from '../../../wizard/action/wizard.action'; import { MetadataProviderEditorTypes } from '../model'; +import { ClearProvider } from '../action/entity.action'; +import { ClearEditor } from '../action/editor.action'; @Component({ selector: 'provider-select', @@ -33,14 +35,20 @@ export class ProviderSelectComponent implements OnDestroy { this.provider$ .subscribe(provider => { - this.store.dispatch(new SetDefinition({ - ...MetadataProviderEditorTypes.find(def => def.type === provider['@type']) - })); + if (provider) { + this.store.dispatch(new SetDefinition({ + ...MetadataProviderEditorTypes.find(def => def.type === provider['@type']) + })); + } }); } ngOnDestroy() { this.actionsSubscription.unsubscribe(); + this.store.dispatch(new ClearProvider()); + this.store.dispatch(new ClearWizard()); + this.store.dispatch(new ClearEditor()); + this.store.dispatch(new ClearProviderSelection()); } } diff --git a/ui/src/app/metadata/provider/reducer/collection.reducer.ts b/ui/src/app/metadata/provider/reducer/collection.reducer.ts index 8a2959851..f787140e6 100644 --- a/ui/src/app/metadata/provider/reducer/collection.reducer.ts +++ b/ui/src/app/metadata/provider/reducer/collection.reducer.ts @@ -46,6 +46,13 @@ export function reducer(state = initialState, action: ProviderCollectionActionsU }; } + case ProviderCollectionActionTypes.CLEAR_SELECTION: { + return { + ...state, + selectedProviderId: null + }; + } + default: { return state; }