1import * as Context from "effect/Context";
2import * as Effect from "effect/Effect";
3import * as Layer from "effect/Layer";
4import * as Ref from "effect/Ref";
5
6export class DesktopState extends Context.Service<
7 DesktopState,
8 {
9 readonly backendReady: Ref.Ref<boolean>;
10 readonly quitting: Ref.Ref<boolean>;
11 }
12>()("@t3tools/desktop/app/DesktopState") {}
13
14const make = Effect.all({
15 backendReady: Ref.make(false),
16 quitting: Ref.make(false),
17});
18
19export const layer = Layer.effect(DesktopState, make);