File size: 704 Bytes
0dbc9de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import { createStore } from "solid-js/store"
import { useArgs } from "./args"
import { createSimpleContext } from "./helper"
export type PermissionMode = "auto" | "normal"
export const { use: usePermission, provider: PermissionProvider } = createSimpleContext({
name: "Permission",
init: () => {
const args = useArgs()
const [store, setStore] = createStore<{ mode: PermissionMode }>({
mode: args.auto ? "auto" : "normal",
})
return {
get mode() {
return store.mode
},
set(mode: PermissionMode) {
setStore("mode", mode)
},
toggle() {
setStore("mode", (mode) => (mode === "auto" ? "normal" : "auto"))
},
}
},
})
|