a816c05777
- Implemented refresh event emission in multiple list components across partner and superAdmin modules. - Updated consumers and customers list components to handle refresh actions. - Enhanced dashboard component to fetch partner info on initialization. - Introduced new API method in PartnerService to retrieve current partner data. - Modified PartnerStore to utilize the new API method for fetching partner information. - Updated UI elements to reflect changes in partner and license management, including new fields for license renewals. - Added a new POS display component for better presentation of POS terminal information. - Updated layout service and top bar to reflect new titles and improve user experience. - Refactored existing components to ensure consistency and maintainability.
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import { EntityState, EntityStore } from '@/core/state';
|
|
import { LayoutService } from '@/layout/service/layout.service';
|
|
import { inject, Injectable } from '@angular/core';
|
|
import { catchError, finalize } from 'rxjs';
|
|
import { IPartnerResponse } from '../models';
|
|
import { PartnerService } from '../services/main.service';
|
|
|
|
interface PartnerState extends EntityState<IPartnerResponse> {}
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class PartnerStore extends EntityStore<IPartnerResponse, PartnerState> {
|
|
private readonly service = inject(PartnerService);
|
|
private readonly layoutService = inject(LayoutService);
|
|
|
|
constructor() {
|
|
super({
|
|
loading: false,
|
|
error: null,
|
|
entity: null,
|
|
initialized: false,
|
|
isRefreshing: false,
|
|
});
|
|
}
|
|
|
|
getData() {
|
|
this.patchState({ loading: true });
|
|
this.service
|
|
.getMe()
|
|
.pipe(
|
|
finalize(() => {
|
|
this.patchState({ loading: false });
|
|
}),
|
|
catchError((error) => {
|
|
this.setError(error);
|
|
throw error;
|
|
}),
|
|
)
|
|
.subscribe((entity) => {
|
|
this.layoutService.setPanelInfo({
|
|
title: `پنل مدیریتی ${entity.partner.name}`,
|
|
});
|
|
this.setEntity(entity);
|
|
});
|
|
}
|
|
|
|
override reset(): void {
|
|
this.setState({
|
|
loading: false,
|
|
error: null,
|
|
entity: null,
|
|
initialized: false,
|
|
isRefreshing: false,
|
|
});
|
|
}
|
|
}
|