react-torch
Version:
A lib to server-side render with react.
81 lines (80 loc) • 3.03 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSelector = exports.useStore = exports.useParams = exports.useTorchContext = exports.useHistory = exports.useLocation = exports.usePageSetup = void 0;
var react_1 = require("react");
var context_1 = __importDefault(require("../context"));
var hook_1 = require("../../internal/hook");
Object.defineProperty(exports, "usePageSetup", { enumerable: true, get: function () { return hook_1.usePageSetup; } });
var useLocation = function () {
var location = (0, react_1.useContext)(context_1.default).location;
return location;
};
exports.useLocation = useLocation;
var useHistory = function () {
var history = (0, react_1.useContext)(context_1.default).history;
return history;
};
exports.useHistory = useHistory;
var useTorchContext = function () {
var context = (0, react_1.useContext)(context_1.default).context;
return context;
};
exports.useTorchContext = useTorchContext;
var useParams = function () {
var params = (0, react_1.useContext)(context_1.default).params;
return params;
};
exports.useParams = useParams;
var useStore = function () {
var store = (0, react_1.useContext)(context_1.default).store;
var _a = __read((0, react_1.useState)(null), 2), state = _a[0], setState = _a[1];
var _b = __read((0, react_1.useReducer)(function (s) { return s + 1; }, 0), 2), forceRender = _b[1];
var update = function () {
var curState = store.getState();
if (!Object.is(curState, state)) {
forceRender();
}
};
(0, react_1.useEffect)(function () {
setState(store.getState());
store.subscribe(update);
}, []);
return store;
};
exports.useStore = useStore;
var useSelector = function (select) {
var store = (0, react_1.useContext)(context_1.default).store;
var _a = __read((0, react_1.useState)(null), 2), state = _a[0], setState = _a[1];
var _b = __read((0, react_1.useReducer)(function (s) { return s + 1; }, 0), 2), forceRender = _b[1];
var update = function () {
var curState = select(store.getState());
if (!Object.is(curState, state)) {
forceRender();
}
};
(0, react_1.useEffect)(function () {
setState(select(store.getState()));
store.subscribe(update);
}, []);
return state;
};
exports.useSelector = useSelector;