UNPKG

generator-zionapps

Version:

Angular 9 Code Generator

51 lines (44 loc) 2.75 kB
import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Params } from '@angular/router'; import { Store } from '@ngrx/store'; import { NgRxCoreAngularNavActions } from '@zionapps/ngrx-angular'; import { INgRxCoreMeta } from '@zionapps/ngrx-core'; import { Subscription } from 'rxjs/Subscription';<% if (ngRxSubStoreLocation === '@zionapps/ngrx-management') { %> import { ManagementUserSelectors, <%= pascalCase(pluralDomainName) %>Actions, <%= pascalCase(singularDomainName) %>Selectors } from '@zionapps/ngrx-management';<% } else if (ngRxSubStoreLocation) { %> import { ManagementUserSelectors } from '@zionapps/ngrx-management'; import { <%= pascalCase(pluralDomainName) %>Actions, <%= pascalCase(singularDomainName) %>Selectors } from '<%= ngRxSubStoreLocation %>';<% } else { %> import { <%= pascalCase(pluralDomainName) %>Actions } from '../../../../store/<%= paramCase(pluralDomainName) %>/<%= paramCase(pluralDomainName) %>.actions'; import { <%= pascalCase(singularDomainName) %>Selectors } from '../../../../store/<%= paramCase(pluralDomainName) %>/<%= paramCase(pluralDomainName) %>.selectors';<% } %> @Component({ selector: 'app-<%= paramCase(singularDomainName) %>-view', templateUrl: './<%= paramCase(singularDomainName) %>-view.component.html', styleUrls: ['./<%= paramCase(singularDomainName) %>-view.component.scss'], }) export class <%= pascalCase(singularDomainName) %>ViewComponent implements OnInit, OnDestroy { currentId: number; <%= camelCase(singularDomainName) %>$ = this.store$.select(<%= pascalCase(singularDomainName) %>Selectors.Current); hasAccess$ = this.store$.select(ManagementUserSelectors.HasAccess); readonly meta: INgRxCoreMeta; private paramsSubscription: Subscription; constructor(private route: ActivatedRoute, private store$: Store<any>) { this.meta = { source: '<%= pascalCase(singularDomainName) %>ViewComponent' }; } ngOnInit(): void { this.paramsSubscription = this.route.params.subscribe((params: Params) => { this.currentId = +params['id']; }); } ngOnDestroy(): void { this.store$.dispatch(<%= pascalCase(pluralDomainName) %>Actions.ClearCurrentId()); if (this.paramsSubscription) { this.paramsSubscription.unsubscribe(); } } onLeftButtonClick(): void { this.store$.dispatch(NgRxCoreAngularNavActions.NavigateByUrlRequest(`/<%= paramCase(componentName) %>`, this.meta)); } onRightButtonClick(): void { const url = `/<%= paramCase(componentName) %>/edit/${this.currentId}?returnUrl=/<%= paramCase(componentName) %>/view/${this.currentId}`; this.store$.dispatch(NgRxCoreAngularNavActions.NavigateByUrlRequest(url, this.meta)); } }