import { getContext, setContext } from "svelte"
import { writable, type Writable } from "svelte/store"
export interface SwitchController {
set(id: number, state: boolean): void
getStore(id: number): Writable<boolean>
}
const contextKey = new Object()
export function setSwitchControllerContext(ctx: SwitchController) {
setContext(contextKey, ctx)
}
export function getSwitchControllerContext(): SwitchController {
return getContext(contextKey)
}
export function mockSwitchController(count: number): SwitchController {
const swtichSet: Writable<boolean>[] = [...Array(count).keys()].map(_ => writable<boolean>(false))
return {
set(id: number, state: boolean) {
swtichSet[id].set(state)
},
getStore(id: number): Writable<boolean> {
return swtichSet[id]
},
}
}