solid-native
Version:
Use solid.js to develop native mobile applications
29 lines • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRerender = exports.useMemoCustom = exports.useOnce = void 0;
const react_1 = require("react");
function useOnce(fn) {
var _a;
var _b;
return ((_a = (_b = (0, react_1.useRef)()).current) !== null && _a !== void 0 ? _a : (_b.current = fn()));
}
exports.useOnce = useOnce;
function useMemoCustom(fn, deps) {
const lastDeps = (0, react_1.useRef)();
const value = (0, react_1.useRef)();
if (lastDeps.current &&
lastDeps.current.length === deps.length &&
lastDeps.current.every((x, i) => deps[i] === x)) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return value.current;
}
lastDeps.current = deps;
return (value.current = fn());
}
exports.useMemoCustom = useMemoCustom;
function useRerender() {
const [, setState] = (0, react_1.useState)({});
return () => setState({});
}
exports.useRerender = useRerender;
//# sourceMappingURL=util.js.map