summaryrefslogtreecommitdiff
path: root/packages/client/src/nirax.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/client/src/nirax.ts')
-rw-r--r--packages/client/src/nirax.ts13
1 files changed, 8 insertions, 5 deletions
diff --git a/packages/client/src/nirax.ts b/packages/client/src/nirax.ts
index cd29ae87a5..4efa0345af 100644
--- a/packages/client/src/nirax.ts
+++ b/packages/client/src/nirax.ts
@@ -3,6 +3,7 @@
import { EventEmitter } from 'eventemitter3';
import { Ref, Component, ref, shallowRef, ShallowRef } from 'vue';
import { pleaseLogin } from '@/scripts/please-login';
+import { safeURIDecode } from '@/scripts/safe-uri-decode';
type RouteDef = {
path: string;
@@ -116,7 +117,7 @@ export class Router extends EventEmitter<{
}
if (p.wildcard) {
if (parts.length !== 0) {
- props.set(p.name, parts.join('/'));
+ props.set(p.name, safeURIDecode(parts.join('/')));
parts = [];
}
break pathMatchLoop;
@@ -124,10 +125,12 @@ export class Router extends EventEmitter<{
if (p.startsWith) {
if (parts[0] == null || !parts[0].startsWith(p.startsWith)) continue forEachRouteLoop;
- props.set(p.name, parts[0].substring(p.startsWith.length));
+ props.set(p.name, safeURIDecode(parts[0].substring(p.startsWith.length)));
parts.shift();
} else {
- props.set(p.name, parts[0]);
+ if (parts[0]) {
+ props.set(p.name, safeURIDecode(parts[0]));
+ }
parts.shift();
}
}
@@ -137,7 +140,7 @@ export class Router extends EventEmitter<{
if (parts.length !== 0) continue forEachRouteLoop;
if (route.hash != null && hash != null) {
- props.set(route.hash, hash);
+ props.set(route.hash, safeURIDecode(hash));
}
if (route.query != null && queryString != null) {
@@ -147,7 +150,7 @@ export class Router extends EventEmitter<{
for (const q in route.query) {
const as = route.query[q];
if (queryObject[q]) {
- props.set(as, queryObject[q]);
+ props.set(as, safeURIDecode(queryObject[q]));
}
}
}