From 5c1ec17ec282c3029e44c66001403b5783318d0a Mon Sep 17 00:00:00 2001 From: Kevin Bulteel Date: Fri, 29 Mar 2024 17:59:47 +0100 Subject: [PATCH] fix: routing FF + safari --- packages/@hec.js/ui/lib/src/expression.js | 2 +- packages/@hec.js/ui/lib/src/plugins/data-route.js | 7 ------- packages/@hec.js/ui/lib/src/routing.js | 6 ++++++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/@hec.js/ui/lib/src/expression.js b/packages/@hec.js/ui/lib/src/expression.js index b395ae3..9a482b4 100644 --- a/packages/@hec.js/ui/lib/src/expression.js +++ b/packages/@hec.js/ui/lib/src/expression.js @@ -5,7 +5,7 @@ * @returns {Expression} */ export function expression(text) { - const parts = text.matchAll(/([^ {}\s]+)/g), + const parts = text.matchAll(/([a-z]+=["'][^'"]+["']|[^{}\s]+)/g), exp = { meta: {}, text: text, diff --git a/packages/@hec.js/ui/lib/src/plugins/data-route.js b/packages/@hec.js/ui/lib/src/plugins/data-route.js index d30d987..f907221 100644 --- a/packages/@hec.js/ui/lib/src/plugins/data-route.js +++ b/packages/@hec.js/ui/lib/src/plugins/data-route.js @@ -7,13 +7,6 @@ export const dataRoutePlugin = { select: (node) => node.matches('[data-route]'), run: async (node, props) => { - - /* -- Polyfill safari -- */ - if (!('URLPattern' in window)) { // @ts-ignore - await import('https://kevinblt.github.io/hec/packages/@hec.js/ui/dist/urlpattnern.min.js'); - } - /* -- -- */ - const route = node.dataset.route, placeholder = document.createComment('route: ' + route), update = nodeUpdater(node, placeholder, props); diff --git a/packages/@hec.js/ui/lib/src/routing.js b/packages/@hec.js/ui/lib/src/routing.js index e68eaaa..f74d7c8 100644 --- a/packages/@hec.js/ui/lib/src/routing.js +++ b/packages/@hec.js/ui/lib/src/routing.js @@ -1,6 +1,12 @@ import { onMount } from "./notify.js"; import { signal } from "./signal.js"; +/* -- Polyfill safari -- */ +if (!('URLPattern' in window)) { // @ts-ignore + await import('https://kevinblt.github.io/hec/packages/@hec.js/ui/dist/urlpattnern.min.js'); +} +/* -- -- */ + /** @type { import("./signal.js").Signal<{ [key: string]: string }> } */ export const query = signal({}); export const route = signal(location.pathname);