@void/vue 0.7.4 → 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 CHANGED
@@ -33,6 +33,7 @@ Main runtime APIs live at `@void/vue`:
33
33
 
34
34
  - `Link`
35
35
  - `useRouter()`
36
+ - `useParams()`
36
37
  - `useNavigation()`
37
38
  - `useShared()`
38
39
  - `useForm()`
@@ -9,6 +9,9 @@ declare const Link: Component;
9
9
  //#region src/runtime/use-router.d.ts
10
10
  declare function useRouter(): VoidRouter;
11
11
  //#endregion
12
+ //#region src/runtime/use-params.d.ts
13
+ declare function useParams<T extends Record<string, string> = Record<string, string>>(): T;
14
+ //#endregion
12
15
  //#region src/runtime/use-shared.d.ts
13
16
  declare function useShared<T = CloudContextVariables["shared"]>(): T;
14
17
  //#endregion
@@ -76,4 +79,4 @@ declare function setActionRouter(router: VoidRouter): void;
76
79
  /** Programmatic one-shot page action call with Inertia page update */
77
80
  declare function action<U extends ActionUrl & string>(url: U, ...args: HasParams<U> extends true ? [options: ActionOptions<U>] : [options?: ActionOptions<U>]): Promise<ActionResult>;
78
81
  //#endregion
79
- export { useIslandForm as a, useShared as c, setActionRouter as i, useRouter as l, InferProps as n, useNavigation as o, action as r, useForm as s, Deferred as t, Link as u };
82
+ export { useIslandForm as a, useShared as c, Link as d, setActionRouter as i, useParams as l, InferProps as n, useNavigation as o, action as r, useForm as s, Deferred as t, useRouter as u };
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as useIslandForm, c as useShared, i as setActionRouter, l as useRouter, n as InferProps, o as useNavigation, r as action, s as useForm, t as Deferred, u as Link } from "./index-C0fE29Kv.mjs";
2
- export { Deferred, InferProps, Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useRouter, useShared };
1
+ import { a as useIslandForm, c as useShared, d as Link, i as setActionRouter, l as useParams, n as InferProps, o as useNavigation, r as action, s as useForm, t as Deferred, u as useRouter } from "./index-DjrFKwuZ.mjs";
2
+ export { Deferred, InferProps, Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useParams, useRouter, useShared };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as useForm, c as Link, i as useNavigation, n as setActionRouter, o as useShared, r as useIslandForm, s as useRouter, t as action } from "./runtime-DL_B0L_H.mjs";
2
- export { Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useRouter, useShared };
1
+ import { a as useForm, c as useRouter, i as useNavigation, l as Link, n as setActionRouter, o as useShared, r as useIslandForm, s as useParams, t as action } from "./runtime-DtQg9eTF.mjs";
2
+ export { Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useParams, useRouter, useShared };
package/dist/plugin.mjs CHANGED
@@ -373,6 +373,7 @@ export async function renderIslandPage(pageObj, assetTags) {
373
373
  setup() {
374
374
  provide("__void_shared", reactive(pageObj.shared || {}));
375
375
  provide("__void_errors", reactive(pageObj.errors || {}));
376
+ provide("__void_params", reactive(pageObj.params || {}));
376
377
  if (__frontmatter) provide("__void_frontmatter", __frontmatter);
377
378
  // No router provided — islands have no Void Router
378
379
  return () => {
@@ -590,7 +591,8 @@ export async function renderPage(pageObj, assetTags) {
590
591
  setup() {
591
592
  provide("__void_shared", reactive(pageObj.shared || {}));
592
593
  provide("__void_errors", reactive(pageObj.errors || {}));
593
- provide("__void_router", createSsrRouter(pageObj.url || "/"));
594
+ provide("__void_params", reactive(pageObj.params || {}));
595
+ provide("__void_router", createSsrRouter(pageObj.url || "/", pageObj.params || {}));
594
596
  provide("__void_navigation", idleNavigationState());
595
597
  return () => {
596
598
  patchProps(PageComponent, pageObj.props);
@@ -634,6 +636,7 @@ ${generateComponentManifest(scan, pagesDir)}
634
636
 
635
637
  const shared = reactive({});
636
638
  const errors = reactive({});
639
+ const params = reactive({});
637
640
  const currentComponent = shallowRef(null);
638
641
  const currentLayouts = shallowRef([]);
639
642
  const currentProps = shallowRef({});
@@ -646,6 +649,11 @@ function patchProps(comp, props) {
646
649
  comp.__voidPatched = true;
647
650
  }
648
651
 
652
+ function replaceRecord(target, source) {
653
+ for (const key of Object.keys(target)) delete target[key];
654
+ Object.assign(target, source || {});
655
+ }
656
+
649
657
  const { router, initialPageData, initialComponent, initialLayouts, start } =
650
658
  await createVoidRouter({
651
659
  adapter: {
@@ -655,8 +663,8 @@ const { router, initialPageData, initialComponent, initialLayouts, start } =
655
663
  isLoading: (ref) => ref.loading,
656
664
  applyUpdate(pageData, comp, layouts) {
657
665
  Object.assign(shared, pageData.shared || {});
658
- for (const key of Object.keys(errors)) delete errors[key];
659
- Object.assign(errors, pageData.errors || {});
666
+ replaceRecord(errors, pageData.errors || {});
667
+ replaceRecord(params, pageData.params || {});
660
668
  currentProps.value = pageData.props;
661
669
  currentLayouts.value = layouts;
662
670
  currentComponent.value = comp;
@@ -679,12 +687,13 @@ const { router, initialPageData, initialComponent, initialLayouts, start } =
679
687
  },
680
688
  });
681
689
 
682
- const reactiveRouter = createRouterFacade(router, () => routeUrl.value);
690
+ const reactiveRouter = createRouterFacade(router, () => routeUrl.value, () => params);
683
691
 
684
692
  setActionRouter(reactiveRouter);
685
693
 
686
694
  Object.assign(shared, initialPageData.shared || {});
687
- Object.assign(errors, initialPageData.errors || {});
695
+ replaceRecord(errors, initialPageData.errors || {});
696
+ replaceRecord(params, initialPageData.params || {});
688
697
  currentProps.value = initialPageData.props;
689
698
  currentComponent.value = initialComponent;
690
699
  currentLayouts.value = initialLayouts;
@@ -693,6 +702,7 @@ const app = createSSRApp({
693
702
  setup() {
694
703
  provide("__void_shared", shared);
695
704
  provide("__void_errors", errors);
705
+ provide("__void_params", params);
696
706
  provide("__void_router", reactiveRouter);
697
707
  provide("__void_navigation", navigation);
698
708
 
@@ -1,2 +1,2 @@
1
- import { a as useIslandForm, c as useShared, i as setActionRouter, l as useRouter, n as InferProps, o as useNavigation, r as action, s as useForm, t as Deferred, u as Link } from "../index-C0fE29Kv.mjs";
2
- export { Deferred, InferProps, Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useRouter, useShared };
1
+ import { a as useIslandForm, c as useShared, d as Link, i as setActionRouter, l as useParams, n as InferProps, o as useNavigation, r as action, s as useForm, t as Deferred, u as useRouter } from "../index-DjrFKwuZ.mjs";
2
+ export { Deferred, InferProps, Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useParams, useRouter, useShared };
@@ -1,2 +1,2 @@
1
- import { a as useForm, c as Link, i as useNavigation, n as setActionRouter, o as useShared, r as useIslandForm, s as useRouter, t as action } from "../runtime-DL_B0L_H.mjs";
2
- export { Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useRouter, useShared };
1
+ import { a as useForm, c as useRouter, i as useNavigation, l as Link, n as setActionRouter, o as useShared, r as useIslandForm, s as useParams, t as action } from "../runtime-DtQg9eTF.mjs";
2
+ export { Link, action, setActionRouter, useForm, useIslandForm, useNavigation, useParams, useRouter, useShared };
@@ -222,6 +222,13 @@ function useRouter() {
222
222
  return inject("__void_router", null) ?? ssrProxy;
223
223
  }
224
224
  //#endregion
225
+ //#region src/runtime/use-params.ts
226
+ function useParams() {
227
+ const params = inject("__void_params");
228
+ if (!params) throw new Error("useParams(): must be used inside a Void page.");
229
+ return params;
230
+ }
231
+ //#endregion
225
232
  //#region src/runtime/use-shared.ts
226
233
  function useShared() {
227
234
  const shared = inject("__void_shared");
@@ -459,4 +466,4 @@ async function action(url, ...args) {
459
466
  });
460
467
  }
461
468
  //#endregion
462
- export { useForm as a, Link as c, useNavigation as i, setActionRouter as n, useShared as o, useIslandForm as r, useRouter as s, action as t };
469
+ export { useForm as a, useRouter as c, useNavigation as i, Link as l, setActionRouter as n, useShared as o, useIslandForm as r, useParams as s, action as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@void/vue",
3
- "version": "0.7.4",
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
  "vite": "npm:@voidzero-dev/vite-plus-core@0.1.20",
45
45
  "vite-plus": "^0.1.20",
46
46
  "vue": "^3.5.34",
47
- "void": "0.7.4"
47
+ "void": "0.7.5"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "vite": "npm:@voidzero-dev/vite-plus-core@0.1.20",
51
51
  "vue": "^3.5.0",
52
- "void": "0.7.4"
52
+ "void": "0.7.5"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "vp pack",