UNPKG

@snap/camera-kit

Version:
12 lines 925 B
import { defineAction, defineActions, defineState, defineStates, forActions, StateMachine, } from "@snap/state-management"; import { map, merge } from "rxjs"; import { Injectable } from "@snap/ts-inject"; const createSessionState = () => { const actions = defineActions(defineAction("suspend")(), defineAction("resume")(), defineAction("destroy")()); const states = defineStates(defineState("inactive")(), defineState("active")(), defineState("destroyed")()); return new StateMachine(actions, states, defineState("inactive")()(), (events) => { return merge(events.pipe(forActions("resume"), map(([a]) => states.active(a.data))), events.pipe(forActions("suspend"), map(() => states.inactive())), events.pipe(forActions("destroy"), map(() => states.destroyed()))); }); }; export const sessionStateFactory = Injectable("sessionState", () => createSessionState()); //# sourceMappingURL=sessionState.js.map