react-use-svelte-store
Version:
Consume svelte-stores from react, with hooks
22 lines (21 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.derived = exports.readable = exports.writable = exports.get = exports.useWritable = exports.useReadable = void 0;
const react_1 = require("react");
const store_1 = require("svelte/store");
Object.defineProperty(exports, "get", { enumerable: true, get: function () { return store_1.get; } });
Object.defineProperty(exports, "writable", { enumerable: true, get: function () { return store_1.writable; } });
Object.defineProperty(exports, "readable", { enumerable: true, get: function () { return store_1.readable; } });
Object.defineProperty(exports, "derived", { enumerable: true, get: function () { return store_1.derived; } });
const unset = Symbol();
function useReadable(store) {
const [value, set] = react_1.useState(unset);
react_1.useEffect(() => store.subscribe(set), [store]);
return value === unset ? store_1.get(store) : value;
}
exports.useReadable = useReadable;
function useWritable(store) {
const value = useReadable(store);
return [value, store.set, store.update];
}
exports.useWritable = useWritable;