]> Untitled Git - lemmy-ui.git/blob - src/shared/services/FirstLoadService.ts
926e3acd6eed44e8e3021797355e78d10349b786
[lemmy-ui.git] / src / shared / services / FirstLoadService.ts
1 import { isBrowser } from "@utils/browser";
2
3 export class FirstLoadService {
4   #isFirstLoad: boolean;
5   static #instance: FirstLoadService;
6
7   private constructor() {
8     this.#isFirstLoad = true;
9   }
10
11   get isFirstLoad() {
12     const isFirst = this.#isFirstLoad;
13     if (isFirst) {
14       this.#isFirstLoad = false;
15     }
16
17     return isFirst;
18   }
19
20   static get #Instance() {
21     return this.#instance ?? (this.#instance = new this());
22   }
23
24   static get isFirstLoad() {
25     return !isBrowser() || this.#Instance.isFirstLoad;
26   }
27 }