UNPKG

type-route

Version:

The flexible, type safe routing library.

25 lines (19 loc) 669 B
import { ClickEvent } from "./types"; export function preventDefaultLinkClickBehavior(event: any = {}) { const e = event as ClickEvent; const isModifiedEvent = !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey); const isSelfTarget = !e.target || !e.target.target || e.target.target === "_self"; if ( isSelfTarget && // Ignore everything but links with target self !e.defaultPrevented && // onClick prevented default e.button === 0 && // ignore everything but left clicks !isModifiedEvent // ignore clicks with modifier keys ) { if (e && e.preventDefault) { e.preventDefault(); } return true; } return false; }