mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 21:58:37 +00:00
23 lines
626 B
JavaScript
23 lines
626 B
JavaScript
import { useEffect, useState } from 'react';
|
|
// import { useEvent } from '@strudel.cycles/react';
|
|
import * as Store from '../public/store.mjs';
|
|
import {} from 'react';
|
|
|
|
function useStore() {
|
|
const [state, setState] = useState(Store.get());
|
|
useEvent(Store.storeKey, (e) => setState(e.detail.next));
|
|
return { state, ...Store };
|
|
}
|
|
|
|
// TODO: dedupe
|
|
function useEvent(name, onTrigger, useCapture = false) {
|
|
useEffect(() => {
|
|
document.addEventListener(name, onTrigger, useCapture);
|
|
return () => {
|
|
document.removeEventListener(name, onTrigger, useCapture);
|
|
};
|
|
}, [onTrigger]);
|
|
}
|
|
|
|
export default useStore;
|