@void/svelte 0.7.3 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/plugin.mjs +12 -2
- package/package.json +3 -3
- package/src/runtime/App.svelte +7 -1
- package/src/runtime/index.ts +1 -0
- package/src/runtime/use-params.ts +9 -0
package/README.md
CHANGED
package/dist/plugin.mjs
CHANGED
|
@@ -387,6 +387,7 @@ export async function renderIslandPage(pageObj, assetTags) {
|
|
|
387
387
|
pageProps: pageObj.props,
|
|
388
388
|
shared: pageObj.shared || {},
|
|
389
389
|
errors: pageObj.errors || {},
|
|
390
|
+
params: pageObj.params || {},
|
|
390
391
|
router: null,
|
|
391
392
|
stores: null,
|
|
392
393
|
},
|
|
@@ -548,7 +549,8 @@ export async function renderPage(pageObj, assetTags) {
|
|
|
548
549
|
pageProps: pageObj.props,
|
|
549
550
|
shared: pageObj.shared || {},
|
|
550
551
|
errors: pageObj.errors || {},
|
|
551
|
-
|
|
552
|
+
params: pageObj.params || {},
|
|
553
|
+
router: createSsrRouter(pageObj.url || "/", pageObj.params || {}),
|
|
552
554
|
routeUrl: pageObj.url || "/",
|
|
553
555
|
navigation: idleNavigationState(),
|
|
554
556
|
stores: null,
|
|
@@ -588,7 +590,9 @@ const propsStore = writable({});
|
|
|
588
590
|
const layoutsStore = writable([]);
|
|
589
591
|
const sharedStore = writable({});
|
|
590
592
|
const errorsStore = writable({});
|
|
593
|
+
const paramsStore = writable({});
|
|
591
594
|
let routeUrl = window.location.pathname + window.location.search + window.location.hash;
|
|
595
|
+
let routeParams = {};
|
|
592
596
|
const routeStore = writable(routeUrl);
|
|
593
597
|
const navigationStore = writable(idleNavigationState());
|
|
594
598
|
|
|
@@ -603,6 +607,8 @@ const { router, initialPageData, initialComponent, initialLayouts, start } =
|
|
|
603
607
|
propsStore.set(pageData.props);
|
|
604
608
|
sharedStore.update((s) => ({ ...s, ...(pageData.shared || {}) }));
|
|
605
609
|
errorsStore.set(pageData.errors || {});
|
|
610
|
+
routeParams = pageData.params || {};
|
|
611
|
+
paramsStore.set(routeParams);
|
|
606
612
|
layoutsStore.set(layouts);
|
|
607
613
|
pageStore.set(comp);
|
|
608
614
|
},
|
|
@@ -625,7 +631,7 @@ const { router, initialPageData, initialComponent, initialLayouts, start } =
|
|
|
625
631
|
},
|
|
626
632
|
});
|
|
627
633
|
|
|
628
|
-
const reactiveRouter = createRouterFacade(router, () => routeUrl);
|
|
634
|
+
const reactiveRouter = createRouterFacade(router, () => routeUrl, () => routeParams);
|
|
629
635
|
|
|
630
636
|
setActionRouter(reactiveRouter);
|
|
631
637
|
|
|
@@ -634,6 +640,8 @@ propsStore.set(initialPageData.props);
|
|
|
634
640
|
layoutsStore.set(initialLayouts);
|
|
635
641
|
sharedStore.set(initialPageData.shared || {});
|
|
636
642
|
errorsStore.set(initialPageData.errors || {});
|
|
643
|
+
routeParams = initialPageData.params || {};
|
|
644
|
+
paramsStore.set(routeParams);
|
|
637
645
|
|
|
638
646
|
const appEl = document.getElementById("app");
|
|
639
647
|
hydrate(App, {
|
|
@@ -644,6 +652,7 @@ hydrate(App, {
|
|
|
644
652
|
pageProps: initialPageData.props,
|
|
645
653
|
shared: initialPageData.shared || {},
|
|
646
654
|
errors: initialPageData.errors || {},
|
|
655
|
+
params: initialPageData.params || {},
|
|
647
656
|
router,
|
|
648
657
|
routeUrl,
|
|
649
658
|
navigation: idleNavigationState(),
|
|
@@ -653,6 +662,7 @@ hydrate(App, {
|
|
|
653
662
|
layouts: layoutsStore,
|
|
654
663
|
shared: sharedStore,
|
|
655
664
|
errors: errorsStore,
|
|
665
|
+
params: paramsStore,
|
|
656
666
|
route: routeStore,
|
|
657
667
|
navigation: navigationStore,
|
|
658
668
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@void/svelte",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/voidzero-dev/void.git",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"svelte": "^5.55.5",
|
|
45
45
|
"vite": "npm:@voidzero-dev/vite-plus-core@0.1.20",
|
|
46
46
|
"vite-plus": "^0.1.20",
|
|
47
|
-
"void": "0.7.
|
|
47
|
+
"void": "0.7.5"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"svelte": "^5.0.0",
|
|
51
51
|
"vite": "npm:@voidzero-dev/vite-plus-core@0.1.20",
|
|
52
|
-
"void": "0.7.
|
|
52
|
+
"void": "0.7.5"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "vp pack",
|
package/src/runtime/App.svelte
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
pageProps: props.pageProps,
|
|
14
14
|
shared: props.shared,
|
|
15
15
|
errors: props.errors,
|
|
16
|
+
params: props.params,
|
|
16
17
|
router: props.router,
|
|
17
18
|
routeUrl: props.routeUrl,
|
|
18
19
|
navigation: props.navigation,
|
|
@@ -25,9 +26,10 @@
|
|
|
25
26
|
let currentPageProps = $state(init.pageProps);
|
|
26
27
|
let shared = $state(init.shared);
|
|
27
28
|
let errors = $state(init.errors);
|
|
29
|
+
let params = $state(init.params || {});
|
|
28
30
|
let routeUrl = $state(init.routeUrl || "/");
|
|
29
31
|
let navigation = $state(init.navigation || idleNavigationState());
|
|
30
|
-
const router = createRouterFacade(init.router, () => routeUrl);
|
|
32
|
+
const router = createRouterFacade(init.router, () => routeUrl, () => params);
|
|
31
33
|
|
|
32
34
|
// Capitalized alias for dynamic component rendering
|
|
33
35
|
let Page = $derived(currentPage);
|
|
@@ -39,6 +41,9 @@
|
|
|
39
41
|
setContext("__void_errors", {
|
|
40
42
|
get value() { return errors; },
|
|
41
43
|
});
|
|
44
|
+
setContext("__void_params", {
|
|
45
|
+
get value() { return params; },
|
|
46
|
+
});
|
|
42
47
|
setContext("__void_router", router);
|
|
43
48
|
setContext("__void_navigation", {
|
|
44
49
|
get value() { return navigation; },
|
|
@@ -54,6 +59,7 @@
|
|
|
54
59
|
init.stores.layouts.subscribe((v) => { currentLayouts = v; }),
|
|
55
60
|
init.stores.shared.subscribe((v) => { shared = v; }),
|
|
56
61
|
init.stores.errors.subscribe((v) => { errors = v; }),
|
|
62
|
+
init.stores.params.subscribe((v) => { params = v; }),
|
|
57
63
|
init.stores.route.subscribe((v) => { routeUrl = v; }),
|
|
58
64
|
init.stores.navigation.subscribe((v) => { navigation = v; }),
|
|
59
65
|
];
|
package/src/runtime/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as Link } from './Link.svelte';
|
|
2
2
|
export { useRouter } from './use-router.ts';
|
|
3
|
+
export { useParams } from './use-params.ts';
|
|
3
4
|
export { useShared } from './use-shared.ts';
|
|
4
5
|
export { useForm } from './use-form.svelte.ts';
|
|
5
6
|
export { useNavigation } from './use-navigation.ts';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getContext } from 'svelte';
|
|
2
|
+
|
|
3
|
+
export function useParams<T extends Record<string, string> = Record<string, string>>(): T {
|
|
4
|
+
const ctx = getContext<{ value: T }>('__void_params');
|
|
5
|
+
if (!ctx) {
|
|
6
|
+
throw new Error('useParams(): must be used inside a Void page.');
|
|
7
|
+
}
|
|
8
|
+
return ctx.value;
|
|
9
|
+
}
|