Files
micro-frontend/ng-ttc-frontend/src/app/services/state/project-state.service.ts

27 lines
737 B
TypeScript
Raw Normal View History

2025-11-23 18:43:10 +07:00
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
2025-11-25 21:11:57 +07:00
import { IPrjMst } from '../../interfaces/main.interface';
2025-11-23 18:43:10 +07:00
@Injectable({
providedIn: 'root'
})
export class ProjectStateService {
2025-11-25 21:11:57 +07:00
// ประกาศ BehaviorSubject ด้วย Interface
private projectState = new BehaviorSubject<IPrjMst[] | null>(null);
2025-11-23 18:43:10 +07:00
2025-11-25 21:11:57 +07:00
// ส่ง Observable ไปให้ components subscribe
getStateResult(): Observable<IPrjMst[] | null> {
2025-11-23 18:43:10 +07:00
return this.projectState.asObservable();
}
2025-11-25 21:11:57 +07:00
// เซ็ท state
setProjectState(projects: IPrjMst[]): void {
this.projectState.next(projects);
2025-11-23 18:43:10 +07:00
}
2025-11-25 21:11:57 +07:00
// เคลียร์ state
2025-11-23 18:43:10 +07:00
clearState(): void {
this.projectState.next(null);
}
}