diff --git a/goofy-client/apps/goofy/src/app/app.component.html b/goofy-client/apps/goofy/src/app/app.component.html index a88d6c715f604116de4ab10440a97718912d5fbb..384334c3ab6589654d4d4860d86c01d8293a3ce2 100644 --- a/goofy-client/apps/goofy/src/app/app.component.html +++ b/goofy-client/apps/goofy/src/app/app.component.html @@ -1,23 +1,20 @@ <ng-container *ngIf="apiRoot$ | async as apiRoot"> - <goofy-client-header - [darkMode]="darkMode$ | async" - [navigationCollapse]="navigationCollapse$ | async" - (toggleMenuEvent)="toggleNavigation($event)" - (darkModeEmitter)="changeColorMode($event)" - > - </goofy-client-header> + <!-- TODO replace by spinner-component --> + <ng-container *ngIf="apiRoot.loaded"> + <goofy-client-header + [darkMode]="darkMode$ | async" + [navigationCollapse]="navigationCollapse$ | async" + (toggleMenuEvent)="toggleNavigation($event)" + (darkModeEmitter)="changeColorMode($event)" + > + </goofy-client-header> - <div class="container"> - <goofy-client-navigation [isSmall]="navigationCollapse$ | async"></goofy-client-navigation> - <main><router-outlet></router-outlet></main> - <section> - <goofy-client-build-info [apiRoot]="apiRoot"></goofy-client-build-info> - </section> - </div> + <div class="container"> + <goofy-client-navigation [isSmall]="navigationCollapse$ | async"></goofy-client-navigation> + <main><router-outlet></router-outlet></main> + <section> + <goofy-client-build-info [apiRoot]="apiRoot"></goofy-client-build-info> + </section> + </div> + </ng-container> </ng-container> -<!-- -<ng-container *ngIf="apiRootStateless$ | async as apiRootStateless"> - {{apiRootStateless | json}} -</ng-container> - ---> diff --git a/goofy-client/apps/goofy/src/app/app.component.spec.ts b/goofy-client/apps/goofy/src/app/app.component.spec.ts index bf3aa3ae2ed1de4fa5a4958b45bd495dafa4ff24..986ba6a3d1cda44e21b9743b2288bd8742e9878b 100644 --- a/goofy-client/apps/goofy/src/app/app.component.spec.ts +++ b/goofy-client/apps/goofy/src/app/app.component.spec.ts @@ -1,24 +1,21 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AppComponent } from './app.component'; -import { ApiRootFacade, ApiRootResource } from '@goofy-client/api-root-shared'; +import { ApiRootResource, ApiRootService } from '@goofy-client/api-root-shared'; import { NgxsModule } from '@ngxs/store'; import { UiModule } from '@goofy-client/ui'; import { RouterTestingModule } from '@angular/router/testing'; import { NavigationModule } from '@goofy-client/navigation'; import { BehaviorSubject } from 'rxjs'; -import { ApiRootService } from 'libs/api-root-shared/src/lib/api-root.service'; +import { mock } from '@goofy-client/test-utils'; +import { createEmptyStateResource, createStateResource, StateResource } from '@goofy-client/tech-shared'; +import { createApiRootResource } from '../../../../libs/api-root-shared/test/api-root'; describe('AppComponent', () => { let component: AppComponent; let fixture: ComponentFixture<AppComponent>; - const apiRootSelectorSubj: BehaviorSubject<ApiRootResource> = new BehaviorSubject(null); - - const apiRootFacade = { - apiRootSelector$: apiRootSelectorSubj - } - - const apiRootService = { getApiRoot: () => {}}; + const apiRootSubj: BehaviorSubject<StateResource<ApiRootResource>> = new BehaviorSubject(null); + const apiRootService = mock(ApiRootService); const headerComp: string = 'goofy-client-header'; @@ -32,10 +29,6 @@ describe('AppComponent', () => { ], declarations: [AppComponent], providers: [ - { - provide: ApiRootFacade, - useValue: apiRootFacade - }, { provide: ApiRootService, useValue: apiRootService @@ -48,6 +41,8 @@ describe('AppComponent', () => { fixture = TestBed.createComponent(AppComponent); component = fixture.componentInstance; fixture.detectChanges(); + + apiRootService.getApiRoot.mockReturnValue(apiRootSubj); }); it('should create the app', () => { @@ -58,21 +53,23 @@ describe('AppComponent', () => { expect(component.title).toEqual('goofy'); }); - describe('header should', () => { - it('be rendered', () => { - apiRootSelectorSubj.next(<any>{}); + describe('header', () => { + + it('should be rendered', () => { + apiRootSubj.next(createStateResource(createApiRootResource())); + fixture.detectChanges(); const header = fixture.nativeElement.querySelector(headerComp); - - expect(header).toBeInstanceOf(HTMLElement); + expect(header).toBeInstanceOf(HTMLElement); //TODO prüfen ob wir expectElementFromFixture wieder nutzen können }) - it('NOT be rendered', () => { - apiRootSelectorSubj.next(null); + + it('should NOT be rendered if api root not loaded', () => { + apiRootSubj.next(createEmptyStateResource()); + fixture.detectChanges(); const header = fixture.nativeElement.querySelector(headerComp); - expect(header).not.toBeInstanceOf(HTMLElement); }) }) diff --git a/goofy-client/apps/goofy/src/app/app.component.ts b/goofy-client/apps/goofy/src/app/app.component.ts index 6025a75b295c44fc83ad04b22d7da249f2f6b970..13189db125385de0bcf47de362f12c031f0b99e2 100644 --- a/goofy-client/apps/goofy/src/app/app.component.ts +++ b/goofy-client/apps/goofy/src/app/app.component.ts @@ -1,11 +1,11 @@ +import { DOCUMENT } from '@angular/common'; import { Component, Inject, Renderer2 } from '@angular/core'; -import { ApiRootFacade, ApiRootResource, ApiRootService } from '@goofy-client/api-root-shared'; -import { Observable } from 'rxjs'; +import { ApiRootResource, ApiRootService } from '@goofy-client/api-root-shared'; +import { StateResource } from '@goofy-client/tech-shared'; import { IconService } from '@goofy-client/ui'; +import { Observable } from 'rxjs'; import { AppFacade } from './shared/app.facade'; -import { DOCUMENT } from '@angular/common'; import { localStorageDark } from './shared/storage'; -import { StateResource } from '@goofy-client/tech-shared'; @Component({ selector: 'goofy-client-root', @@ -15,24 +15,21 @@ import { StateResource } from '@goofy-client/tech-shared'; export class AppComponent { title = 'goofy'; - apiRoot$: Observable<ApiRootResource>; - apiRootStateless$: Observable<StateResource<ApiRootResource>>; + readonly apiRoot$: Observable<StateResource<ApiRootResource>>; navigationCollapse$: Observable<boolean>; darkMode$: Observable<boolean>; constructor( - apiRootFacade: ApiRootFacade, iconService: IconService, private appFacade: AppFacade, private renderer: Renderer2, @Inject(DOCUMENT) private document: Document, - private service: ApiRootService + service: ApiRootService ) { - this.navigationCollapse$ = this.appFacade.navigationCollapse$; - this.darkMode$ = this.appFacade.darkMode$; - this.apiRoot$ = apiRootFacade.apiRootSelector$; - this.apiRootStateless$ = this.service.getApiRoot(); + this.navigationCollapse$ = appFacade.navigationCollapse$; + this.darkMode$ = appFacade.darkMode$; + this.apiRoot$ = service.getApiRoot(); iconService.registerIcons(); @@ -40,7 +37,7 @@ export class AppComponent { } private subscribeToDarkMode(): void { - this.darkMode$.subscribe(darkMode => darkMode ? this.addClass(localStorageDark): this.removeClass(localStorageDark)); + this.darkMode$.subscribe(darkMode => darkMode ? this.addClass(localStorageDark) : this.removeClass(localStorageDark)); } private addClass(styleClass: string): void { @@ -55,7 +52,7 @@ export class AppComponent { this.appFacade.setNavigationCollapse(isToggle); } - changeColorMode(darkMode: boolean): void{ + changeColorMode(darkMode: boolean): void { this.appFacade.changeColorMode(darkMode); } } \ No newline at end of file diff --git a/goofy-client/apps/goofy/src/app/app.module.ts b/goofy-client/apps/goofy/src/app/app.module.ts index 74fca048c269e8432586ac64da8e02b1cfe6c74f..30595d43683ff3e18c19e3f2f41d99cb49e279d2 100644 --- a/goofy-client/apps/goofy/src/app/app.module.ts +++ b/goofy-client/apps/goofy/src/app/app.module.ts @@ -5,7 +5,7 @@ import { LOCALE_ID, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterModule } from '@angular/router'; -import { ApiRootSharedModule } from '@goofy-client/api-root-shared'; +import { ApiRootModule } from '@goofy-client/api-root-shared'; import { EnvironmentModule } from '@goofy-client/environment-shared'; import { NavigationModule } from '@goofy-client/navigation'; import { UiModule } from '@goofy-client/ui'; @@ -32,11 +32,11 @@ registerLocaleData(localeDe); NgxsRouterPluginModule.forRoot(), NgxsActionsExecutingModule.forRoot(), HttpClientModule, - EnvironmentModule, - ApiRootSharedModule, BrowserAnimationsModule, RouterModule, UiModule, + EnvironmentModule, + ApiRootModule, VorgangModule, NavigationModule ], diff --git a/goofy-client/libs/api-root-shared/src/index.ts b/goofy-client/libs/api-root-shared/src/index.ts index 20b2a6401e7205c624f242e8800fa543c60eb851..c12fb22a5ca30ebec06ed619d9400690a131d2d9 100644 --- a/goofy-client/libs/api-root-shared/src/index.ts +++ b/goofy-client/libs/api-root-shared/src/index.ts @@ -1,7 +1,4 @@ -export * from './lib/api-root-shared.actions'; -export * from './lib/api-root-shared.facade'; -export * from './lib/api-root-shared.module'; -export * from './lib/api-root-shared.model'; -export * from './lib/api-root-shared.state'; -export * from './lib/api-root-shared.linkrels'; -export * from './lib/api-root.service'; \ No newline at end of file +export * from './lib/api-root.service'; +export * from './lib/api-root.module'; +export * from './lib/api-root.model'; +export * from './lib/api-root.linkrels'; diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.actions.ts b/goofy-client/libs/api-root-shared/src/lib/api-root-shared.actions.ts deleted file mode 100644 index 256e3150b484d0ad07c42f0066aaf5f699509763..0000000000000000000000000000000000000000 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.actions.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ResourceUri } from '@ngxp/rest'; -import { Environment } from 'libs/environment-shared/src/lib/environment.model'; - -export class LoadApiRootAction { - static readonly type = '[System ApiRoot] Load'; - - constructor() { } -} \ No newline at end of file diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.facade.ts b/goofy-client/libs/api-root-shared/src/lib/api-root-shared.facade.ts deleted file mode 100644 index a7851a37344154159b7dd5884804479ab4c60764..0000000000000000000000000000000000000000 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.facade.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Select } from '@ngxs/store'; -import { Observable } from 'rxjs'; -import { ApiRootResource } from './api-root-shared.model'; -import { ApiRootState } from './api-root-shared.state'; - -@Injectable() -export class ApiRootFacade { - - @Select(ApiRootState.apiRootSelector) public readonly apiRootSelector$: Observable<ApiRootResource>; - -} \ No newline at end of file diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.module.ts b/goofy-client/libs/api-root-shared/src/lib/api-root-shared.module.ts deleted file mode 100644 index 1e29e66b1bda71a0e37c6326e902dff9c5b46c5d..0000000000000000000000000000000000000000 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { RestModule } from '@ngxp/rest'; -import { NgxsModule } from '@ngxs/store'; -import { ApiRootFacade } from './api-root-shared.facade'; -import { ApiRootService } from './api-root-shared.service'; -import { ApiRootService as StatelessService } from './api-root.service'; -import { ApiRootState } from './api-root-shared.state'; -import { ApiRootRepository } from './api-root.repository'; - -@NgModule({ - imports: [ - CommonModule, - NgxsModule.forFeature([ApiRootState]), - RestModule - ], - providers: [ApiRootService, ApiRootFacade, StatelessService, ApiRootRepository], -}) -export class ApiRootSharedModule {} diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.service.ts b/goofy-client/libs/api-root-shared/src/lib/api-root-shared.service.ts deleted file mode 100644 index 7f6c2ded563751bbc29be94aa33ea4cef79317ef..0000000000000000000000000000000000000000 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.service.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Injectable, InjectionToken } from '@angular/core'; -import { HttpService, ResourceUri } from '@ngxp/rest'; -import { Observable } from 'rxjs'; -import { ApiRootResource } from './api-root-shared.model'; - -export const REMOTE_HOST = new InjectionToken('remoteHost'); - -@Injectable() -export class ApiRootService { - constructor(private httpService: HttpService) {} - - get(remoteHost: ResourceUri): Observable<ApiRootResource> { - return <Observable<ApiRootResource>>this.httpService.get(remoteHost); - } -} diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.state.ts b/goofy-client/libs/api-root-shared/src/lib/api-root-shared.state.ts deleted file mode 100644 index 5ef79118b2ee78ceed201bd47f2206816bb8e467..0000000000000000000000000000000000000000 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.state.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Action, NgxsOnInit, Selector, State, StateContext } from '@ngxs/store'; -import { tap } from 'rxjs/operators'; -import { LoadApiRootAction } from './api-root-shared.actions'; -import { ApiRootResource } from './api-root-shared.model'; -import { ApiRootService } from './api-root-shared.service'; -import { ApiRootRepository } from './api-root.repository'; - -const defaults: ApiRootStateModel = { - apiRoot: null, -}; - -interface ApiRootStateModel { - apiRoot: ApiRootResource; -} - -@State<ApiRootStateModel>({ name: 'apiRoot', defaults }) -@Injectable() -export class ApiRootState implements NgxsOnInit { - - @Selector() static apiRootSelector(state: ApiRootStateModel): ApiRootResource { - return state.apiRoot; - } - - constructor(private service: ApiRootService, private repository: ApiRootRepository) { } - - ngxsOnInit(context: StateContext<any>): void { - // context.dispatch(new LoadApiRootAction(env)) - - // getEnvironmentFactory().then((environment: Environment) => context.dispatch(new LoadApiRootAction(environment.remoteHost))); - context.dispatch(new LoadApiRootAction()); - } - - @Action(LoadApiRootAction) - loadApiRoot(context: StateContext<ApiRootStateModel>, action: LoadApiRootAction) { - return this.repository.loadApiRoot().pipe( - // return this.service.get(action.remoteHost).pipe( - tap((apiRoot) => { - context.patchState({ apiRoot }); - }) - ); - } -} \ No newline at end of file diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.linkrels.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.linkrels.ts similarity index 100% rename from goofy-client/libs/api-root-shared/src/lib/api-root-shared.linkrels.ts rename to goofy-client/libs/api-root-shared/src/lib/api-root.linkrels.ts diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.model.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.model.ts similarity index 67% rename from goofy-client/libs/api-root-shared/src/lib/api-root-shared.model.ts rename to goofy-client/libs/api-root-shared/src/lib/api-root.model.ts index 017120b7c558a4f29debb4f9c29a543c5ae78dd5..7d987290f387195f5cca5969404ae3b023c5e9fb 100644 --- a/goofy-client/libs/api-root-shared/src/lib/api-root-shared.model.ts +++ b/goofy-client/libs/api-root-shared/src/lib/api-root.model.ts @@ -6,4 +6,4 @@ export interface ApiRoot { javaVersion: string; } -export interface ApiRootResource extends ApiRoot, Resource {} +export interface ApiRootResource extends ApiRoot, Resource { } diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root.module.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..3639e1142077d5a526888b0224a5060f48f1aa8c --- /dev/null +++ b/goofy-client/libs/api-root-shared/src/lib/api-root.module.ts @@ -0,0 +1,14 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { RestModule } from '@ngxp/rest'; +import { ApiRootRepository } from './api-root.repository'; +import { ApiRootService } from './api-root.service'; + +@NgModule({ + imports: [ + CommonModule, + RestModule + ], + providers: [ApiRootService, ApiRootRepository], +}) +export class ApiRootModule { } diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root.repository.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.repository.ts index a5df6e6e7abdd3324a409b6f41fe7c5301cad23a..1209b2fcf02cb6a587a6354cb26cc262153a95e4 100644 --- a/goofy-client/libs/api-root-shared/src/lib/api-root.repository.ts +++ b/goofy-client/libs/api-root-shared/src/lib/api-root.repository.ts @@ -1,7 +1,7 @@ import { Inject, Injectable } from '@angular/core'; import { HttpService } from '@ngxp/rest'; import { Observable } from 'rxjs'; -import { ApiRootResource } from './api-root-shared.model'; +import { ApiRootResource } from './api-root.model'; import { ENVIRONMENT_CONFIG } from '@goofy-client/environment-shared'; import { Environment } from 'libs/environment-shared/src/lib/environment.model'; diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root.service.spec.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.service.spec.ts index 2691fcc668cf9ecbfde00e3cb1d23d8aeb74c45d..97cc3f0dc2341043244e3501266487bf24fe9b1d 100644 --- a/goofy-client/libs/api-root-shared/src/lib/api-root.service.spec.ts +++ b/goofy-client/libs/api-root-shared/src/lib/api-root.service.spec.ts @@ -3,7 +3,7 @@ import { ApiRootService } from './api-root.service'; import { Mock, mock } from '@goofy-client/test-utils'; import { createEmptyStateResource } from '@goofy-client/tech-shared'; import { of } from 'rxjs'; -import { ApiRoot } from './api-root-shared.model'; +import { ApiRoot } from './api-root.model'; describe('ApiRootService', () => { @@ -57,7 +57,6 @@ describe('ApiRootService', () => { it('should set resource', () => { service.getApiRoot(); - expect((<any>service).apiRoot$.value.resource).toBe(apiRoot); }); diff --git a/goofy-client/libs/api-root-shared/src/lib/api-root.service.ts b/goofy-client/libs/api-root-shared/src/lib/api-root.service.ts index 42c67ba44e579819f8df68f791aa0be156155550..059b10f425056967fe5e7dfc4a047468cbb68428 100644 --- a/goofy-client/libs/api-root-shared/src/lib/api-root.service.ts +++ b/goofy-client/libs/api-root-shared/src/lib/api-root.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; import { createEmptyStateResource, createStateResource, doIfLoadingRequired, StateResource } from '@goofy-client/tech-shared'; import { ApiRootRepository } from './api-root.repository'; -import { ApiRootResource } from './api-root-shared.model'; +import { ApiRootResource } from './api-root.model'; @Injectable() export class ApiRootService { diff --git a/goofy-client/libs/api-root-shared/test/api-root.ts b/goofy-client/libs/api-root-shared/test/api-root.ts new file mode 100644 index 0000000000000000000000000000000000000000..264e6958c0e69e2854ef0f1c6de60dec259d396e --- /dev/null +++ b/goofy-client/libs/api-root-shared/test/api-root.ts @@ -0,0 +1,15 @@ +import { toResource } from '@goofy-client/tech-shared' +import { ApiRoot, ApiRootResource } from '../src/lib/api-root.model' + +export function createApiRootResource(): ApiRootResource { + return toResource(createApiRoot()); +} + +export function createApiRoot(): ApiRoot { + return { + version: '1', + buildTime: '1', + javaVersion: '1' + } +} + diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang-shared.state.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang-shared.state.ts index b589d3283ae5346d51f52c8175213e638d0b486b..deb0696de5daeced7517aeb0845910509951b88f 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang-shared.state.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang-shared.state.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { ApiRootResource, ApiRootState } from '@goofy-client/api-root-shared'; +import { ApiRootResource } from '@goofy-client/api-root-shared'; import { VorgangListResource } from '@goofy-client/vorgang-shared'; import { Action, State, StateContext, Store } from '@ngxs/store'; import { tap } from 'rxjs/operators'; @@ -9,7 +9,7 @@ import { patch, append } from '@ngxs/store/operators'; import { VorgangListLinkRel } from './vorgang-shared.linkrels'; import { getEmbeddedResource, hasLink, ResourceUri } from '@ngxp/rest'; import { VorgangResource } from './vorgang-shared.model'; -import { createEmptyStateResource, createStateResource, getLastValueFromLastIndexOf, sliceUriToId, StateResource } from '@goofy-client/tech-shared'; +import { createEmptyStateResource, createStateResource, getLastValueFromLastIndexOf, sliceUriToId, StateResource, toResource } from '@goofy-client/tech-shared'; import { RouterNavigation } from '@ngxs/router-plugin'; import { isEqual } from 'lodash-es'; import { Selector } from '@ngxs/store'; @@ -45,15 +45,16 @@ export class VorgangSharedState { return hasNextPage; } - constructor(private store: Store, private service: VorgangSharedService) {} + constructor(private store: Store, private service: VorgangSharedService) { } @Action(LoadVorgangListAction) loadVorgangList(context: StateContext<VorgangSharedModel>) { - const apiRoot: ApiRootResource = this.store.selectSnapshot(ApiRootState.apiRootSelector); + // const apiRoot: ApiRootResource = this.store.selectSnapshot(ApiRootState.apiRootSelector); + const apiRoot: ApiRootResource = toResource({}); return this.service.getFirstVorgangListPage(apiRoot).pipe( tap((vorgangList: VorgangListResource) => { - context.patchState({currentVorgangListPageResource: createEmptyStateResource(true)}); + context.patchState({ currentVorgangListPageResource: createEmptyStateResource(true) }); context.dispatch(new LoadVorgangListSuccessAction(vorgangList)) }) ) @@ -74,7 +75,7 @@ export class VorgangSharedState { return this.service.getNextVorgangListPage(vorgangListResource.resource).pipe( tap((vorgangList: VorgangListResource) => { - context.patchState({currentVorgangListPageResource: createEmptyStateResource(true)}); + context.patchState({ currentVorgangListPageResource: createEmptyStateResource(true) }); context.dispatch(new LoadNextVorgangListPageSuccessAction(vorgangList)) }) ) @@ -82,7 +83,7 @@ export class VorgangSharedState { @Action(LoadNextVorgangListPageSuccessAction) loadNextVorgangPageSuccess(context: StateContext<VorgangSharedModel>, action: LoadNextVorgangListPageSuccessAction) { const vorgangList: VorgangListResource = action.vorgangList; - + return context.setState(patch({ currentVorgangListPageResource: createStateResource(vorgangList), vorgaenge: append(getEmbeddedResource(vorgangList, VorgangListLinkRel.VORGANG_LIST)) @@ -90,15 +91,15 @@ export class VorgangSharedState { } @Action(RouterNavigation) - routerNavigation(context: StateContext<VorgangSharedModel>, action: RouterNavigation){ - if(this.isVorgangNavigation(action.event.url)){ + routerNavigation(context: StateContext<VorgangSharedModel>, action: RouterNavigation) { + if (this.isVorgangNavigation(action.event.url)) { this.handleNavigationToVorgang(context, getLastValueFromLastIndexOf(action.event.url, '/')); } - if(this.isVorgaengeNavigation(action.event.url)){ + if (this.isVorgaengeNavigation(action.event.url)) { context.patchState({ vorgang: null }); } } - + private isVorgangNavigation(url: string): boolean { return url.startsWith('/vorgang/') ? true : false; } @@ -106,7 +107,7 @@ export class VorgangSharedState { private isVorgaengeNavigation(url: string): boolean { return isEqual(url, '/') ? true : false; } - + private handleNavigationToVorgang(context: StateContext<VorgangSharedModel>, vorgangUri: ResourceUri): void { const vorgaenge: VorgangResource[] = this.store.selectSnapshot(VorgangSharedState.vorgeangeSelector); const vorgang: VorgangResource = vorgaenge.find(vorgang => isEqual(sliceUriToId(vorgang), vorgangUri));