Files
psp_panel/src/app/domains/superAdmin/modules/consumers/views/single.component.ts
T

65 lines
2.1 KiB
TypeScript

import { BreadcrumbService } from '@/core/services';
import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import { JalaliDateDirective } from '@/shared/directives';
import { getLicenseStatus } from '@/utils';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Button } from 'primeng/button';
import { ConsumerAccountListComponent } from '../components/accounts/list.component';
import { ConsumerBusinessActivitiesComponent } from '../components/businessActivities/list.component';
import { ConsumerUserFormComponent } from '../components/form.component';
import { ConsumerLicenseFormComponent } from '../components/licenses/form.component';
import { ConsumerStore } from '../store/consumer.store';
@Component({
selector: 'consumer-user',
templateUrl: './single.component.html',
imports: [
AppCardComponent,
KeyValueComponent,
ConsumerUserFormComponent,
ConsumerAccountListComponent,
ConsumerBusinessActivitiesComponent,
Button,
JalaliDateDirective,
ConsumerLicenseFormComponent,
],
})
export class ConsumerComponent {
private readonly store = inject(ConsumerStore);
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
readonly consumerId = signal<string>(this.route.snapshot.paramMap.get('consumerId')!);
editMode = signal<boolean>(false);
visibleLicenseForm = signal(false);
readonly loading = computed(() => this.store.loading());
readonly consumer = computed(() => this.store.entity());
readonly license = computed(() => this.store.entity()?.license_info);
readonly licenseStatus = computed(() =>
getLicenseStatus(this.store.entity()?.license_info?.expires_at),
);
constructor() {
effect(() => {
if (this.consumer()?.id) {
this.setBreadcrumb();
}
});
}
getData() {
this.store.getData(this.consumerId());
}
setBreadcrumb() {
this.breadcrumbService.setItems(this.store.breadcrumbItems());
}
openLicenseForm() {
this.visibleLicenseForm.set(true);
}
}