{"version":3,"file":"useSelector.mjs","names":[],"sources":["../../../../../../../src/lib/mobx/useSelector.ts"],"sourcesContent":["import { autorun } from \"mobx\";\nimport { useEffect, useState } from \"react\";\n\nexport type MobXSelector<T> = () => T;\n\n/** Use this hook to select reactive state from the store */\nexport const useSelector = <T>(\n  select: MobXSelector<T>,\n  deps: unknown[] = [],\n): T => {\n  const [selected, setSelected] = useState<T>(select());\n\n  useEffect(() => {\n    return autorun(() => {\n      setSelected(select());\n    });\n  }, deps);\n\n  return selected;\n};\n\nexport default useSelector;\n"],"mappings":";;;;;;AAMA,IAAa,eACX,QACA,OAAkB,CAAC,MACb;CACN,MAAM,CAAC,UAAU,eAAe,SAAY,OAAO,CAAC;CAEpD,gBAAgB;EACd,OAAO,cAAc;GACnB,YAAY,OAAO,CAAC;EACtB,CAAC;CACH,GAAG,IAAI;CAEP,OAAO;AACT"}