Files
micro-frontend/accounting-ng-nuttakit/src/app/services/state/dashboard-state.service.ts

42 lines
1.2 KiB
TypeScript
Raw Normal View History

import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { IDropAct, IStateDrop, IActData } from '../../interfaces/dashboard.interface';
@Injectable({
providedIn: 'root'
})
export class DashboardStateService {
// ประกาศ BehaviorSubject ด้วย Interface
2025-11-13 15:37:50 +07:00
private dashboardState = new BehaviorSubject<IStateDrop | null>(null);
private accountting = new BehaviorSubject<IActData[] | null>(null);
// ส่ง Observable ไปให้ components subscribe
2025-11-13 15:37:50 +07:00
getStateResult(): Observable<IStateDrop | null> {
return this.dashboardState.asObservable();
}
// เซ็ท state
setStateResult(dashboard: IStateDrop): void {
this.dashboardState.next(dashboard);
}
setStateAccountResult(dashboard: IActData[]): void {
this.accountting.next(dashboard);
}
// เคลียร์ state
clearState(): void {
2025-11-13 15:37:50 +07:00
this.dashboardState.next(null);
}
getStateAccountResult(): Observable<IActData[] | null> {
return this.accountting.asObservable();
}
// ดึงค่า current state (ไม่ใช่ observable)
// getCurrentState(): IDropAct | null {
// return this.dashboardState.value;
// }
}