Skip to content

Commit 664c038

Browse files
committed
refactor(test-app): use $props in Svelte5 components
Refactor all test-app Svelte components to use the $props() helper for prop access instead of Svelte's export let syntax. This aligns with the new recommended pattern for prop handling in Svelte5 and improves consistency across the codebase. Also updates some state and effect usage to match Svelte5 idioms.
1 parent 874815a commit 664c038

20 files changed

+45
-43
lines changed

packages/svelte5/test-app/Layouts/NestedLayout.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import { onMount } from 'svelte'
33
import { page } from '@inertiajs/svelte5'
44
5-
let createdAt: number | null = null
5+
const { children } = $props()
6+
let createdAt = $state<number | null>(null)
67
78
onMount(() => {
89
window._inertia_nested_layout_id = crypto.randomUUID()
@@ -21,6 +22,6 @@
2122
<span>Nested Layout</span>
2223
<span>{createdAt}</span>
2324
<div>
24-
<slot />
25+
{@render children?.()}
2526
</div>
2627
</div>

packages/svelte5/test-app/Layouts/SiteLayout.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import { onMount } from 'svelte'
33
import { page } from '@inertiajs/svelte5'
44
5-
let createdAt: number | null = null
5+
const { children } = $props()
6+
let createdAt = $state<number | null>(null)
67
78
onMount(() => {
89
window._inertia_layout_id = crypto.randomUUID()
@@ -21,6 +22,6 @@
2122
<span>Site Layout</span>
2223
<span>{createdAt}</span>
2324
<div>
24-
<slot />
25+
{@render children?.()}
2526
</div>
2627
</div>

packages/svelte5/test-app/Pages/Article.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
document.documentElement.style.scrollBehavior = 'smooth'
77
}
88
9-
export let scrollLog: number[] = []
9+
let { scrollLog = [] }: { scrollLog?: number[] } = $props()
10+
let scrollLogState = $state(scrollLog)
1011
1112
const handleScrollEvent = () => {
1213
scrollLog = [...scrollLog, document.documentElement.scrollTop]

packages/svelte5/test-app/Pages/DeferredProps/Page1.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<script lang="ts">
22
import { Deferred, inertia } from '@inertiajs/svelte5'
33
4-
export let foo: { text: string } | undefined
5-
export let bar: { text: string } | undefined
4+
const { foo, bar }: { foo?: { text: string }; bar?: { text: string } } = $props()
65
</script>
76

87
<Deferred data="foo">

packages/svelte5/test-app/Pages/Dump.svelte

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<script lang="ts">
2-
import { beforeUpdate } from 'svelte'
32
import { page } from '@inertiajs/svelte5'
43
import type { Method } from '@inertiajs/core'
54
import type { MulterFile } from '../types'
65
7-
export let headers: Record<string, string>
8-
export let method: Method
9-
export let form: Record<string, unknown>
10-
export let files: MulterFile[] | object = {}
11-
export let url: string
12-
export let query: Record<string, unknown>
6+
const { headers, method, form, files = {}, url, query }: {
7+
headers: Record<string, string>;
8+
method: Method;
9+
form: Record<string, unknown>;
10+
files?: MulterFile[] | object;
11+
url: string;
12+
query: Record<string, unknown>;
13+
} = $props()
1314
1415
const dump = {
1516
headers,
@@ -21,7 +22,8 @@
2122
$page: page,
2223
}
2324
24-
beforeUpdate(() => {
25+
// Set window dump for testing
26+
$effect(() => {
2527
window._inertia_request_dump = dump
2628
})
2729
</script>

packages/svelte5/test-app/Pages/Links/AsWarning.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { Link } from '@inertiajs/svelte5'
33
4-
export let method
4+
const { method } = $props()
55
</script>
66

77
<div>

packages/svelte5/test-app/Pages/Links/AsWarningFalse.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { inertia } from '@inertiajs/svelte5'
33
4-
export let method
4+
const { method } = $props()
55
</script>
66

77
<div>

packages/svelte5/test-app/Pages/Links/CancelSyncRequest.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { Link } from '@inertiajs/svelte5'
33
4-
export let page: number
4+
const { page }: { page: number } = $props()
55
</script>
66

77
<h1 style="font-size: 40px;">

packages/svelte5/test-app/Pages/Links/PreserveScroll.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { inertia } from '@inertiajs/svelte5'
77
import type { Page } from '@inertiajs/core'
88
9-
export let foo: string = 'default'
9+
const { foo = 'default' }: { foo?: string } = $props()
1010
1111
const preserveCallback = (page: Page) => {
1212
console.log(JSON.stringify(page))

packages/svelte5/test-app/Pages/Links/PreserveScrollFalse.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { inertia } from '@inertiajs/svelte5'
77
import type { Page } from '@inertiajs/core'
88
9-
export let foo: string = 'default'
9+
const { foo = 'default' }: { foo?: string } = $props()
1010
1111
const preserveCallback = (page: Page) => {
1212
console.log(JSON.stringify(page))

0 commit comments

Comments
 (0)