generator-zionapps
Version:
Angular 9 Code Generator
51 lines (44 loc) • 2.75 kB
text/typescript
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';<% } %>
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));
}
}