@@ -24,35 +24,32 @@ export const useEffectOnce = (effect: EffectCallback) => {
2424 } , [ ] )
2525}
2626
27- /**
28- *
29- * INFO this implementation works but gives a rerender.
27+ // INFO this implementation works but gives a rerender.
28+ //
29+ //
30+ // export const useEffectOnce = (effect: EffectCallback) => {
31+ // const update = useRerender();
32+ // const effectFn = useRef(effect);
33+ // const cleanUpFn = useRef<ReturnType<EffectCallback>>();
34+ // const effectCalled = useRef(false);
35+ // const rendered = useRef(false);
3036
31- export const useEffectOnce = (effect: EffectCallback) => {
32- const update = useRerender();
33- const effectFn = useRef(effect);
34- const cleanUpFn = useRef<ReturnType<EffectCallback>>();
35- const effectCalled = useRef(false);
36- const rendered = useRef(false);
37-
38- if (effectCalled.current) {
39- rendered.current = true;
40- }
41-
42- useEffect(() => {
43- if (!effectCalled.current) {
44- cleanUpFn.current = effectFn.current();
45- effectCalled.current = true
46- update();
47- }
48- return () => {
49- if (rendered.current) {
50- cleanUpFn.current && cleanUpFn.current();
51- effectCalled.current = false
52- }
53- }
54- // eslint-disable-next-line react-hooks/exhaustive-deps
55- }, []);
56- }
37+ // if (effectCalled.current) {
38+ // rendered.current = true;
39+ // }
5740
58- */
41+ // useEffect(() => {
42+ // if (!effectCalled.current) {
43+ // cleanUpFn.current = effectFn.current();
44+ // effectCalled.current = true
45+ // update();
46+ // }
47+ // return () => {
48+ // if (rendered.current) {
49+ // cleanUpFn.current && cleanUpFn.current();
50+ // effectCalled.current = false
51+ // }
52+ // }
53+ // // eslint-disable-next-line react-hooks/exhaustive-deps
54+ // }, []);
55+ // }
0 commit comments