mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
32 lines
919 B
TypeScript
32 lines
919 B
TypeScript
import { BehaviorSubject, Observable } from "rxjs";
|
|
|
|
export class SelectedPageService {
|
|
static getInstance(): SelectedPageService {
|
|
return SelectedPageService._instance;
|
|
}
|
|
|
|
private static _instance: SelectedPageService = new SelectedPageService();
|
|
|
|
selectedPage$: Observable<string>;
|
|
|
|
private _selectedPageSource: BehaviorSubject<string>;
|
|
|
|
constructor() {
|
|
if (SelectedPageService._instance) {
|
|
throw new Error("Use SelectedPageService.getInstance() instead of new.");
|
|
}
|
|
|
|
SelectedPageService._instance = this;
|
|
|
|
// Observable selectedPage source
|
|
this._selectedPageSource = new BehaviorSubject<string>("Home");
|
|
|
|
// Observable selectedPage stream
|
|
this.selectedPage$ = this._selectedPageSource.asObservable();
|
|
}
|
|
|
|
updateSelectedPage(selectedPage: string) {
|
|
this._selectedPageSource.next(selectedPage);
|
|
}
|
|
}
|