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);
|
|
|
|
|
}
|
|
|
|
|
}
|