resig.js
Version:
Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.
45 lines • 3.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useReactTreeRouter = exports.useReactRouter = void 0;
const router_1 = require("./router");
const navigation_1 = require("./navigation");
/**
* React Router Adapter
*/
const useReactRouter = (routes) => {
const routerSignal = (0, router_1.router)(routes, (0, navigation_1.createBrowserNav)());
return {
routerSignal,
route: routerSignal.route,
params: routerSignal.params,
navigate: (to) => {
routerSignal.navigate(to);
},
back: () => routerSignal.back(),
forward: () => routerSignal.forward(),
replace: (to) => routerSignal.replace(to)
};
};
exports.useReactRouter = useReactRouter;
/**
* React Tree Router Adapter
*/
const useReactTreeRouter = (tree) => {
const React = require('react');
const routerSignal = (0, router_1.treeRouter)(tree, (0, navigation_1.createBrowserNav)());
const [, forceUpdate] = React.useReducer((x) => x + 1, 0);
React.useEffect(() => {
const unsubscribe = routerSignal.subscribe(() => forceUpdate());
return unsubscribe;
}, []);
return {
route: routerSignal.route.value(),
params: routerSignal.params.value(),
navigate: (to) => routerSignal.navigate(to),
back: () => routerSignal.back(),
forward: () => routerSignal.forward(),
replace: (to) => routerSignal.replace(to)
};
};
exports.useReactTreeRouter = useReactTreeRouter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5yZWFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0ZXIvYWRhcHRlci5yZWFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBOEM7QUFDOUMsNkNBQWdEO0FBRWhEOztHQUVHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsQ0FBSSxNQUFrQixFQUFFLEVBQUU7SUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFNLEVBQUMsTUFBTSxFQUFFLElBQUEsNkJBQWdCLEdBQUUsQ0FBQyxDQUFDO0lBRXhELE9BQU87UUFDTCxZQUFZO1FBQ1osS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtRQUMzQixRQUFRLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRTtZQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtRQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtRQUNyQyxPQUFPLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQ2xELENBQUM7QUFDSixDQUFDLENBQUM7QUFkVyxRQUFBLGNBQWMsa0JBY3pCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQUksSUFBa0IsRUFBRSxFQUFFO0lBQzFELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixNQUFNLFlBQVksR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxFQUFFLElBQUEsNkJBQWdCLEdBQUUsQ0FBQyxDQUFDO0lBRTFELE1BQU0sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU87UUFDTCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDakMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ25DLFFBQVEsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDbkQsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7UUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7UUFDckMsT0FBTyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbkJXLFFBQUEsa0JBQWtCLHNCQW1CN0IifQ==