garfio
Version:
extending Hookleton Pattern namespaces and more
17 lines (15 loc) • 440 B
JavaScript
import { useMemo, useEffect } from 'react';
import { createHook as createHookCore } from 'hookleton';
export function createHook() {
const hook = createHookCore.apply(null, arguments);
let h;
function use() {
const host = useMemo(() => !h && (h = true), []);
return host ? (useEffect(() => () => (h = false), []), hook.use()) : hook();
}
function useFn() {
return use();
}
useFn.get = hook.get;
return useFn;
}