@nlabs/gothamjs
Version:
Platform
35 lines (34 loc) • 3.62 kB
JavaScript
import { useFluxListener } from "@nlabs/arkhamjs-utils-react";
import { Outlet, useNavigate } from "react-router";
import { GothamConstants } from "../../constants/GothamConstants.js";
import { jsx } from "react/jsx-runtime";
const navBack = (history) => () => {
history.goBack();
};
const navForward = (history) => () => {
history.goForward();
};
const navGoto = (navigate) => (data) => {
const { params, path = "" } = data;
navigate(path, params);
};
const navReplace = (history) => (data) => {
const { params, path = "" } = data;
history.replace(path, params);
};
const GothamRoot = () => {
const navigate = useNavigate();
useFluxListener(GothamConstants.NAV_BACK, navBack(navigate));
useFluxListener(GothamConstants.NAV_FORWARD, navForward(navigate));
useFluxListener(GothamConstants.NAV_GOTO, navGoto(navigate));
useFluxListener(GothamConstants.NAV_REPLACE, navReplace(navigate));
return /* @__PURE__ */ jsx(Outlet, {});
};
export {
GothamRoot,
navBack,
navForward,
navGoto,
navReplace
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpZXdzL0dvdGhhbS9Hb3RoYW1Sb290LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7dXNlRmx1eExpc3RlbmVyfSBmcm9tICdAbmxhYnMvYXJraGFtanMtdXRpbHMtcmVhY3QnO1xuaW1wb3J0IHtPdXRsZXQsIHVzZU5hdmlnYXRlfSBmcm9tICdyZWFjdC1yb3V0ZXInO1xuXG5pbXBvcnQge0dvdGhhbUNvbnN0YW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzL0dvdGhhbUNvbnN0YW50cy5qcyc7XG5cbmltcG9ydCB0eXBlIHtGQ30gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgbmF2QmFjayA9IChoaXN0b3J5KSA9PiAoKTogdm9pZCA9PiB7XG4gIGhpc3RvcnkuZ29CYWNrKCk7XG59O1xuXG5leHBvcnQgY29uc3QgbmF2Rm9yd2FyZCA9IChoaXN0b3J5KSA9PiAoKTogdm9pZCA9PiB7XG4gIGhpc3RvcnkuZ29Gb3J3YXJkKCk7XG59O1xuXG5leHBvcnQgY29uc3QgbmF2R290byA9IChuYXZpZ2F0ZSkgPT4gKGRhdGEpOiB2b2lkID0+IHtcbiAgY29uc3Qge3BhcmFtcywgcGF0aCA9ICcnfSA9IGRhdGE7XG4gIG5hdmlnYXRlKHBhdGgsIHBhcmFtcyk7XG59O1xuXG5leHBvcnQgY29uc3QgbmF2UmVwbGFjZSA9IChoaXN0b3J5KSA9PiAoZGF0YSk6IHZvaWQgPT4ge1xuICBjb25zdCB7cGFyYW1zLCBwYXRoID0gJyd9ID0gZGF0YTtcbiAgaGlzdG9yeS5yZXBsYWNlKHBhdGgsIHBhcmFtcyk7XG59O1xuXG5leHBvcnQgY29uc3QgR290aGFtUm9vdDogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuICB1c2VGbHV4TGlzdGVuZXIoR290aGFtQ29uc3RhbnRzLk5BVl9CQUNLLCBuYXZCYWNrKG5hdmlnYXRlKSk7XG4gIHVzZUZsdXhMaXN0ZW5lcihHb3RoYW1Db25zdGFudHMuTkFWX0ZPUldBUkQsIG5hdkZvcndhcmQobmF2aWdhdGUpKTtcbiAgdXNlRmx1eExpc3RlbmVyKEdvdGhhbUNvbnN0YW50cy5OQVZfR09UTywgbmF2R290byhuYXZpZ2F0ZSkpO1xuICB1c2VGbHV4TGlzdGVuZXIoR290aGFtQ29uc3RhbnRzLk5BVl9SRVBMQUNFLCBuYXZSZXBsYWNlKG5hdmlnYXRlKSk7XG5cbiAgcmV0dXJuIDxPdXRsZXQvPjtcbn07Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsU0FBUSx1QkFBc0I7QUFDOUIsU0FBUSxRQUFRLG1CQUFrQjtBQUVsQyxTQUFRLHVCQUFzQjtBQThCckI7QUExQkYsTUFBTSxVQUFVLENBQUMsWUFBWSxNQUFZO0FBQzlDLFVBQVEsT0FBTztBQUNqQjtBQUVPLE1BQU0sYUFBYSxDQUFDLFlBQVksTUFBWTtBQUNqRCxVQUFRLFVBQVU7QUFDcEI7QUFFTyxNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBZTtBQUNuRCxRQUFNLEVBQUMsUUFBUSxPQUFPLEdBQUUsSUFBSTtBQUM1QixXQUFTLE1BQU0sTUFBTTtBQUN2QjtBQUVPLE1BQU0sYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFlO0FBQ3JELFFBQU0sRUFBQyxRQUFRLE9BQU8sR0FBRSxJQUFJO0FBQzVCLFVBQVEsUUFBUSxNQUFNLE1BQU07QUFDOUI7QUFFTyxNQUFNLGFBQWlCLE1BQU07QUFDbEMsUUFBTSxXQUFXLFlBQVk7QUFFN0Isa0JBQWdCLGdCQUFnQixVQUFVLFFBQVEsUUFBUSxDQUFDO0FBQzNELGtCQUFnQixnQkFBZ0IsYUFBYSxXQUFXLFFBQVEsQ0FBQztBQUNqRSxrQkFBZ0IsZ0JBQWdCLFVBQVUsUUFBUSxRQUFRLENBQUM7QUFDM0Qsa0JBQWdCLGdCQUFnQixhQUFhLFdBQVcsUUFBUSxDQUFDO0FBRWpFLFNBQU8sb0JBQUMsVUFBTTtBQUNoQjsiLAogICJuYW1lcyI6IFtdCn0K