generator-zionapps
Version:
Angular 9 Code Generator
45 lines (36 loc) • 2.23 kB
text/typescript
import { Component, Input } from '@angular/core';
import { Store } from '@ngrx/store';
import { getPropertyValue } from '@zionapps/core';
import { INgRxCoreError } from '@zionapps/ngrx-core';
import { AlertController } from 'ionic-angular';
import { <%= pascalCase(pluralDomainName) %>Actions } from '../../../store/<%= paramCase(pluralDomainName) %>/<%= paramCase(pluralDomainName) %>.actions';
import { <%= pascalCase(singularDomainName) %>, <%= pascalCase(pluralDomainName) %>Config } from '../../../store/<%= paramCase(pluralDomainName) %>/<%= paramCase(pluralDomainName) %>.domain';
import { <%= pascalCase(singularDomainName) %>Selectors } from '../../../store/<%= paramCase(pluralDomainName) %>/<%= paramCase(pluralDomainName) %>.selectors';
({
selector: '<%= paramCase(singularDomainName) %>-widget',
templateUrl: '<%= paramCase(singularDomainName) %>-widget.html'
})
export class <%= pascalCase(singularDomainName) %>WidgetComponent {
() loading: boolean;
readonly <%= camelCase(singularDomainName) %>$ = this.store.select(<%= pascalCase(singularDomainName) %>Selectors.SelectCurrent);
readonly source = '<%= pascalCase(singularDomainName) %>Widget';
constructor(private alertCtrl: AlertController, private store: Store<any>) {}
on<%= pascalCase(singularDomainName) %>Error(err: INgRxCoreError): void {
const { message } = err;
this.alertCtrl.create({
title: '',
message,
buttons: ['Ok'],
}).present().catch(console.error);
}
on<%= pascalCase(singularDomainName) %>Save(<%= camelCase(singularDomainName) %>: <%= pascalCase(singularDomainName) %>): void {
if (<%= camelCase(singularDomainName) %>) {
const id = getPropertyValue(<%= camelCase(singularDomainName) %>, <%= pascalCase(pluralDomainName) %>Config.idProperty, undefined);
if (id) {
this.store.dispatch(<%= pascalCase(pluralDomainName) %>Actions.UpdateOneRemoteRequest(<%= camelCase(singularDomainName) %>, { source: this.source }));
} else {
this.store.dispatch(<%= pascalCase(pluralDomainName) %>Actions.CreateOneRemoteRequest(<%= camelCase(singularDomainName) %>, { source: this.source }));
}
}
}
}