reverseqr

qr codes working in both directions
git clone https://tongong.net/git/reverseqr.git
Log | Files | Refs | README

store.js (829B)


      1 const createStore = require("zustand/vanilla").default;
      2 const { subscribeWithSelector } = require("zustand/middleware");
      3 
      4 const navigation = require("./navigation.js");
      5 
      6 /* makes the store a function object from getState */
      7 function bindGetFn(store) {
      8     let n = store.getState;
      9     n.setState = store.setState;
     10     n.getState = store.getState;
     11     n.subscribe = store.subscribe;
     12     n.destroy = store.destroy;
     13     return n;
     14 }
     15 
     16 module.exports = bindGetFn(createStore(subscribeWithSelector(
     17     set => ({
     18         qr: true,
     19         qrClose: () => set(() => ({ qr: false })),
     20         id: "",
     21         idSet: (n) => {
     22             if (!navigation.isIdValid(n)) n = navigation.generateId();
     23             set(() => ({id: n}))
     24         },
     25         ydoc: null,
     26         ydocSet: (n) => set(() => ({ ydoc: n })),
     27         users: 0,
     28     })
     29 )));