{"version":3,"file":"CoverLink-C32hZPC_.js","sources":["../../../node_modules/use-long-press/index.mjs","../../../app/javascript/components/Cover/HandleCoverLongPress.tsx","../../../app/javascript/components/Cover/CoverLink.tsx"],"sourcesContent":["import { useRef as s, useCallback as h, useEffect as g } from \"react\";\nvar l = /* @__PURE__ */ ((e) => (e.Mouse = \"mouse\", e.Touch = \"touch\", e.Pointer = \"pointer\", e))(l || {}), d = /* @__PURE__ */ ((e) => (e.CancelledByMovement = \"cancelled-by-movement\", e.CancelledByRelease = \"cancelled-by-release\", e.CancelledOutsideElement = \"cancelled-outside-element\", e))(d || {});\nconst A = () => typeof window == \"object\" ? window?.PointerEvent ?? null : null, z = () => typeof window == \"object\" ? window?.TouchEvent ?? null : null;\nfunction U(e) {\n const { nativeEvent: t } = e, u = z();\n return u && t instanceof u || \"touches\" in e;\n}\nfunction X(e) {\n const t = A();\n return e.nativeEvent instanceof MouseEvent && !(t && e.nativeEvent instanceof t);\n}\nfunction Y(e) {\n const { nativeEvent: t } = e;\n if (!t)\n return !1;\n const u = A();\n return u && t instanceof u || \"pointerId\" in t;\n}\nfunction R(e) {\n return X(e) || U(e) || Y(e);\n}\nfunction j(e) {\n return U(e) ? {\n x: e.touches[0].pageX,\n y: e.touches[0].pageY\n } : X(e) || Y(e) ? {\n x: e.pageX,\n y: e.pageY\n } : null;\n}\nfunction G(e) {\n return {\n target: e.target,\n currentTarget: e.currentTarget,\n nativeEvent: e,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n persist: () => {\n }\n };\n}\nfunction J(e, {\n threshold: t = 400,\n captureEvent: u = !1,\n detect: y = l.Pointer,\n cancelOnMovement: w = !1,\n cancelOutsideElement: v = !0,\n filterEvents: p,\n onStart: M,\n onMove: C,\n onFinish: L,\n onCancel: b\n} = {}) {\n const P = s(!1), c = s(!1), I = s(), a = s(), T = s(e), f = s(null), E = h(\n (n) => (r) => {\n c.current || R(r) && (p !== void 0 && !p(r) || (u && r.persist(), M?.(r, { context: n }), f.current = j(r), c.current = !0, I.current = r.currentTarget, a.current = setTimeout(() => {\n T.current && (T.current(r, { context: n }), P.current = !0);\n }, t)));\n },\n [u, p, M, t]\n ), i = h(\n (n) => (r, o) => {\n R(r) && c.current && (f.current = null, u && r.persist(), P.current ? L?.(r, { context: n }) : c.current && b?.(r, { context: n, reason: o ?? d.CancelledByRelease }), P.current = !1, c.current = !1, a.current !== void 0 && clearTimeout(a.current));\n },\n [u, L, b]\n ), m = h(\n (n) => (r) => {\n if (C?.(r, { context: n }), w !== !1 && f.current) {\n const o = j(r);\n if (o) {\n const B = w === !0 ? 25 : w, D = {\n x: Math.abs(o.x - f.current.x),\n y: Math.abs(o.y - f.current.y)\n };\n (D.x > B || D.y > B) && i(n)(r, d.CancelledByMovement);\n }\n }\n },\n [i, w, C]\n ), q = h(\n (n) => {\n if (e === null)\n return {};\n switch (y) {\n case l.Mouse: {\n const r = {\n onMouseDown: E(n),\n onMouseMove: m(n),\n onMouseUp: i(n)\n };\n return v && (r.onMouseLeave = (o) => {\n i(n)(o, d.CancelledOutsideElement);\n }), r;\n }\n case l.Touch:\n return {\n onTouchStart: E(n),\n onTouchMove: m(n),\n onTouchEnd: i(n)\n };\n case l.Pointer: {\n const r = {\n onPointerDown: E(n),\n onPointerMove: m(n),\n onPointerUp: i(n)\n };\n return v && (r.onPointerLeave = (o) => i(n)(o, d.CancelledOutsideElement)), r;\n }\n }\n },\n [e, i, v, y, m, E]\n );\n return g(() => {\n if (!window)\n return;\n function n(r) {\n const o = G(r);\n i()(o);\n }\n return window.addEventListener(\"mouseup\", n), window.addEventListener(\"touchend\", n), window.addEventListener(\"pointerup\", n), () => {\n window.removeEventListener(\"mouseup\", n), window.removeEventListener(\"touchend\", n), window.removeEventListener(\"pointerup\", n);\n };\n }, [i]), g(\n () => () => {\n a.current !== void 0 && clearTimeout(a.current);\n },\n []\n ), g(() => {\n T.current = e;\n }, [e]), q;\n}\nexport {\n d as LongPressCallbackReason,\n l as LongPressEventType,\n J as useLongPress\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport { useDispatch } from \"react-redux\";\nimport { useLongPress } from \"use-long-press\";\nimport { bookButtonActions } from \"store/bookButton/bookButtonSlice\";\nimport { ReactElement } from \"react\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\n\nexport default function HandleCoverLongPress({\n bookId,\n children,\n}: {\n bookId: number;\n children: ReactElement;\n}) {\n const isLoggedIn = useIsLoggedIn();\n const dispatch = useDispatch();\n const longPress = useLongPress(() => {\n if (isLoggedIn) {\n dispatch(bookButtonActions.showBookDrawer({ bookId }));\n }\n });\n\n return
{children}
;\n}\n","/* eslint-disable import/no-cycle */\nimport BookType from \"types/BookType\";\nimport EditionType from \"types/EditionType\";\nimport { Link } from \"@inertiajs/react\";\nimport {\n CoverLinkProps as CoverComponentLinkProps,\n CoverProps,\n coverThemeLink,\n} from \"hardcover-ui/theme/components/cover\";\nimport classNames from \"lib/classNames\";\nimport { primaryContributionNames } from \"lib/contributions\";\nimport CoverImage from \"./CoverImage\";\nimport HandleCoverLongPress from \"./HandleCoverLongPress\";\nimport { AuthorSerializersContribution, BookSerializersBookByline, EditionSerializersEditionByline } from \"types/serializers\";\n\nexport interface CoverLinkProps {\n book: BookType | BookSerializersBookByline;\n edition?: EditionType | EditionSerializersEditionByline;\n size: CoverProps[\"size\"];\n variant?: CoverComponentLinkProps[\"variant\"];\n settings?: CoverProps[\"settings\"];\n className?: string;\n}\n\nconst DefaultSettings = {\n tooltip: true,\n details: true,\n eager: false,\n};\n\nexport default function CoverLink({\n book,\n edition,\n size,\n variant = \"none\",\n settings = DefaultSettings,\n className = \"\",\n}: CoverLinkProps) {\n const finalClassName = classNames(\n coverThemeLink.variant[variant],\n coverThemeLink.size?.[size],\n className,\n \"block\"\n );\n const finalSettings = {\n ...settings,\n border: false,\n };\n const tooltip: any = {};\n if (settings.tooltip) {\n tooltip[\"data-tooltip-id\"] = \"tooltip\";\n tooltip[\"data-tooltip-html\"] = `${book.title}${\n book.releaseYear ? ` (${book.releaseYear})` : \"\"\n }`;\n if (book.contributions?.length > 0) {\n const authors = primaryContributionNames(book.contributions as AuthorSerializersContribution[]);\n if (authors.length > 0) {\n tooltip[\n \"data-tooltip-html\"\n ] += `
By ${authors.join(\", \")}`;\n }\n }\n }\n\n const url = edition\n ? `/books/${book.slug}/editions/${edition.id}`\n : `/books/${book.slug}`;\n\n return (\n \n \n \n \n \n );\n}\n"],"names":["l","d","A","z","U","t","u","X","R","j","J","y","w","v","p","M","C","L","b","P","s","c","I","a","T","f","E","h","n","r","i","o","m","B","D","q","g","HandleCoverLongPress","bookId","children","isLoggedIn","useIsLoggedIn","dispatch","useDispatch","longPress","useLongPress","bookButtonActions","jsx","DefaultSettings","CoverLink","book","edition","size","variant","settings","className","finalClassName","classNames","coverThemeLink","_a","finalSettings","tooltip","_b","authors","primaryContributionNames","url","Link","CoverImage","_c"],"mappings":"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","x_google_ignoreList":[0]}