@helpwave/hightide
Version:
helpwave's component and theming library
1 lines • 1.94 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/components/modals/ModalRegister.tsx","../../../src/util/noop.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react'\nimport { createContext, useState } from 'react'\nimport { noop } from '../../util/noop'\n\nexport type ModalContextType = {\n register: string[],\n addToRegister: (id: string) => void,\n removeFromRegister: (id: string) => void,\n}\nexport const ModalContext = createContext<ModalContextType>({\n register: [],\n addToRegister: noop,\n removeFromRegister: noop,\n})\n\n/**\n * A Simple Wrapper for the context\n */\nexport const ModalRegister = ({\n children\n}: PropsWithChildren) => {\n const [register, setRegister] = useState<string[]>([])\n\n const inRegister = (id: string) => {\n return !!register.find(value => value === id)\n }\n\n const addToRegister = (id: string) => {\n if (!inRegister(id)) {\n setRegister([...register, id])\n }\n }\n\n const removeFromRegister = (id: string) => {\n if (inRegister(id)) {\n setRegister(register.filter(value => value !== id))\n }\n }\n\n return (\n <ModalContext.Provider value={{ register, addToRegister, removeFromRegister }}>\n {children}\n </ModalContext.Provider>\n )\n}\n","export const noop = () => undefined\n"],"mappings":";AACA,SAAS,eAAe,gBAAgB;;;ACDjC,IAAM,OAAO,MAAM;;;ADwCtB;AA/BG,IAAM,eAAe,cAAgC;AAAA,EAC1D,UAAU,CAAC;AAAA,EACX,eAAe;AAAA,EACf,oBAAoB;AACtB,CAAC;AAKM,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AACF,MAAyB;AACvB,QAAM,CAAC,UAAU,WAAW,IAAI,SAAmB,CAAC,CAAC;AAErD,QAAM,aAAa,CAAC,OAAe;AACjC,WAAO,CAAC,CAAC,SAAS,KAAK,WAAS,UAAU,EAAE;AAAA,EAC9C;AAEA,QAAM,gBAAgB,CAAC,OAAe;AACpC,QAAI,CAAC,WAAW,EAAE,GAAG;AACnB,kBAAY,CAAC,GAAG,UAAU,EAAE,CAAC;AAAA,IAC/B;AAAA,EACF;AAEA,QAAM,qBAAqB,CAAC,OAAe;AACzC,QAAI,WAAW,EAAE,GAAG;AAClB,kBAAY,SAAS,OAAO,WAAS,UAAU,EAAE,CAAC;AAAA,IACpD;AAAA,EACF;AAEA,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,UAAU,eAAe,mBAAmB,GACzE,UACH;AAEJ;","names":[]}