fix: spa shouldn't use popover script directly
This commit is contained in:
		| @@ -1,20 +1,5 @@ | ||||
| import { computePosition, flip, inline, shift } from "@floating-ui/dom" | ||||
|  | ||||
| // from micromorph/src/utils.ts | ||||
| // https://github.com/natemoo-re/micromorph/blob/main/src/utils.ts#L5 | ||||
| export function normalizeRelativeURLs(el: Element | Document, destination: string | URL) { | ||||
|   const rebase = (el: Element, attr: string, newBase: string | URL) => { | ||||
|     const rebased = new URL(el.getAttribute(attr)!, newBase) | ||||
|     el.setAttribute(attr, rebased.pathname + rebased.hash) | ||||
|   } | ||||
|  | ||||
|   el.querySelectorAll('[href^="./"], [href^="../"]').forEach((item) => | ||||
|     rebase(item, "href", destination), | ||||
|   ) | ||||
|   el.querySelectorAll('[src^="./"], [src^="../"]').forEach((item) => | ||||
|     rebase(item, "src", destination), | ||||
|   ) | ||||
| } | ||||
| import { normalizeRelativeURLs } from "../../util/path" | ||||
|  | ||||
| const p = new DOMParser() | ||||
| async function mouseEnterHandler( | ||||
|   | ||||
| @@ -1,10 +1,8 @@ | ||||
| import micromorph from "micromorph" | ||||
| import { FullSlug, RelativeURL, getFullSlug } from "../../util/path" | ||||
| import { normalizeRelativeURLs } from "./popover.inline" | ||||
| import { FullSlug, RelativeURL, getFullSlug, normalizeRelativeURLs } from "../../util/path" | ||||
|  | ||||
| // adapted from `micromorph` | ||||
| // https://github.com/natemoo-re/micromorph | ||||
|  | ||||
| const NODE_TYPE_ELEMENT = 1 | ||||
| let announcer = document.createElement("route-announcer") | ||||
| const isElement = (target: EventTarget | null): target is Element => | ||||
|   | ||||
| @@ -84,6 +84,22 @@ export function transformInternalLink(link: string): RelativeURL { | ||||
|   return res | ||||
| } | ||||
|  | ||||
| // from micromorph/src/utils.ts | ||||
| // https://github.com/natemoo-re/micromorph/blob/main/src/utils.ts#L5 | ||||
| export function normalizeRelativeURLs(el: Element | Document, destination: string | URL) { | ||||
|   const rebase = (el: Element, attr: string, newBase: string | URL) => { | ||||
|     const rebased = new URL(el.getAttribute(attr)!, newBase) | ||||
|     el.setAttribute(attr, rebased.pathname + rebased.hash) | ||||
|   } | ||||
|  | ||||
|   el.querySelectorAll('[href^="./"], [href^="../"]').forEach((item) => | ||||
|     rebase(item, "href", destination), | ||||
|   ) | ||||
|   el.querySelectorAll('[src^="./"], [src^="../"]').forEach((item) => | ||||
|     rebase(item, "src", destination), | ||||
|   ) | ||||
| } | ||||
|  | ||||
| // resolve /a/b/c to ../.. | ||||
| export function pathToRoot(slug: FullSlug): RelativeURL { | ||||
|   let rootPath = slug | ||||
|   | ||||
		Reference in New Issue
	
	Block a user