dont use parent location
Browse files- README.md +0 -5
- src/app.tsx +6 -7
README.md
CHANGED
|
@@ -5,11 +5,6 @@ colorFrom: blue
|
|
| 5 |
colorTo: blue
|
| 6 |
sdk: static
|
| 7 |
app_file: ./dist/index.html
|
| 8 |
-
header: mini
|
| 9 |
-
custom_headers:
|
| 10 |
-
cross-origin-embedder-policy: unsafe-none
|
| 11 |
-
cross-origin-opener-policy: same-origin
|
| 12 |
-
cross-origin-resource-policy: cross-origin
|
| 13 |
pinned: false
|
| 14 |
license: mit
|
| 15 |
---
|
|
|
|
| 5 |
colorTo: blue
|
| 6 |
sdk: static
|
| 7 |
app_file: ./dist/index.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
pinned: false
|
| 9 |
license: mit
|
| 10 |
---
|
src/app.tsx
CHANGED
|
@@ -64,8 +64,7 @@ export function App(): JSX.Element {
|
|
| 64 |
}
|
| 65 |
|
| 66 |
const updateRoute = useCallback(() => {
|
| 67 |
-
|
| 68 |
-
const url = new URL(window.top.location.href);
|
| 69 |
const route = url.searchParams.get("route");
|
| 70 |
if (route && route in routes) {
|
| 71 |
_setRoute(route as keyof typeof routes);
|
|
@@ -91,17 +90,17 @@ export function App(): JSX.Element {
|
|
| 91 |
updateRoute()
|
| 92 |
}
|
| 93 |
|
| 94 |
-
window.
|
| 95 |
|
| 96 |
return () => {
|
| 97 |
-
window.
|
| 98 |
}
|
| 99 |
}, []);
|
| 100 |
|
| 101 |
|
| 102 |
// Update URL params on route change
|
| 103 |
const setRoute: RouteSetter = useCallback((route: Route, page?: number, id?: string) => {
|
| 104 |
-
const url = new URL(window.
|
| 105 |
url.searchParams.set("route", route);
|
| 106 |
_setRoute(route);
|
| 107 |
|
|
@@ -124,8 +123,8 @@ export function App(): JSX.Element {
|
|
| 124 |
const newUrl = url.toString();
|
| 125 |
|
| 126 |
// Avoid to push the same URL mutiple time
|
| 127 |
-
if (newUrl !== window.
|
| 128 |
-
window.
|
| 129 |
}
|
| 130 |
}, []);
|
| 131 |
|
|
|
|
| 64 |
}
|
| 65 |
|
| 66 |
const updateRoute = useCallback(() => {
|
| 67 |
+
const url = new URL(window.location.href);
|
|
|
|
| 68 |
const route = url.searchParams.get("route");
|
| 69 |
if (route && route in routes) {
|
| 70 |
_setRoute(route as keyof typeof routes);
|
|
|
|
| 90 |
updateRoute()
|
| 91 |
}
|
| 92 |
|
| 93 |
+
window.addEventListener('popstate', listener);
|
| 94 |
|
| 95 |
return () => {
|
| 96 |
+
window.removeEventListener('popstate', listener)
|
| 97 |
}
|
| 98 |
}, []);
|
| 99 |
|
| 100 |
|
| 101 |
// Update URL params on route change
|
| 102 |
const setRoute: RouteSetter = useCallback((route: Route, page?: number, id?: string) => {
|
| 103 |
+
const url = new URL(window.location.href);
|
| 104 |
url.searchParams.set("route", route);
|
| 105 |
_setRoute(route);
|
| 106 |
|
|
|
|
| 123 |
const newUrl = url.toString();
|
| 124 |
|
| 125 |
// Avoid to push the same URL mutiple time
|
| 126 |
+
if (newUrl !== window.location.href) {
|
| 127 |
+
window.history.pushState({}, "", newUrl);
|
| 128 |
}
|
| 129 |
}, []);
|
| 130 |
|