UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

39 lines (36 loc) • 1.14 kB
import { appendBaseUrl } from "../fork/getPathFromState-mods.mjs"; import { stripGroupSegmentsFromPath } from "../router/matchers.mjs"; import { useOneRouter } from "../router/router.mjs"; function eventShouldPreventDefault(e) { if (e?.defaultPrevented) return false; if ("button" in e && !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [ void 0, null, "", "self" ].includes(e.currentTarget.target)) return true; return false; } function useLinkTo(props) { const { linkTo } = useOneRouter(); const onPress = (e) => { const event = props.replace ? "REPLACE" : "PUSH"; let shouldHandle = false; if (!e) shouldHandle = e ? !e.defaultPrevented : true; else if (eventShouldPreventDefault(e)) { e.preventDefault(); shouldHandle = true; } if (shouldHandle) { const options = props.mask ? { mask: { href: props.mask } } : void 0; linkTo(props.href, event, options); } }; return { href: appendBaseUrl(stripGroupSegmentsFromPath(props.mask || props.href) || "/"), role: "link", onPress }; } export { useLinkTo }; //# sourceMappingURL=useLinkTo.mjs.map