Skip to content

Commit 40e6406

Browse files
committed
fix(create): address PowerSync add-on review feedback
1 parent 898f4b0 commit 40e6406

3 files changed

Lines changed: 23 additions & 8 deletions

File tree

packages/create/src/frameworks/react/add-ons/powersync/assets/src/lib/powersync/BackendConnector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export class BackendConnector implements PowerSyncBackendConnector {
4646
await transaction.complete()
4747
} catch (error) {
4848
console.error('PowerSync uploadData failed', error)
49-
await transaction.complete()
49+
throw error
5050
}
5151
}
5252
}

packages/create/src/frameworks/react/add-ons/powersync/assets/src/routes/demo/powersync.tsx

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function PowerSyncDemo() {
2121
)
2222
const todos = (data ?? []) as Array<TodoRow>
2323
const [description, setDescription] = useState('')
24+
const [error, setError] = useState<string | null>(null)
2425

2526
async function addTodo(event: React.FormEvent<HTMLFormElement>) {
2627
event.preventDefault()
@@ -30,12 +31,18 @@ function PowerSyncDemo() {
3031
return
3132
}
3233

33-
await powerSync.execute(
34-
'INSERT INTO todos (id, created_at, description, completed) VALUES (?, ?, ?, ?)',
35-
[crypto.randomUUID(), new Date().toISOString(), nextDescription, 0],
36-
)
34+
try {
35+
setError(null)
36+
await powerSync.execute(
37+
'INSERT INTO todos (id, created_at, description, completed) VALUES (?, ?, ?, ?)',
38+
[crypto.randomUUID(), new Date().toISOString(), nextDescription, 0],
39+
)
3740

38-
setDescription('')
41+
setDescription('')
42+
} catch (error) {
43+
console.error('Failed to insert PowerSync todo', error)
44+
setError('Failed to insert row. Please try again.')
45+
}
3946
}
4047

4148
return (
@@ -65,8 +72,17 @@ function PowerSyncDemo() {
6572
<h2 className="text-sm font-semibold uppercase tracking-[0.16em] text-[var(--sea-ink-soft)]">
6673
Local Todos
6774
</h2>
75+
{error ? (
76+
<p className="mt-3 rounded-2xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700">
77+
{error}
78+
</p>
79+
) : null}
6880
<form className="mt-4 flex flex-col gap-3 sm:flex-row" onSubmit={addTodo}>
81+
<label className="sr-only" htmlFor="powersync-todo-description">
82+
Todo description
83+
</label>
6984
<input
85+
id="powersync-todo-description"
7086
className="min-w-0 flex-1 rounded-2xl border border-[var(--line)] bg-white px-4 py-3 text-sm text-[var(--sea-ink)] outline-none"
7187
onChange={(event) => setDescription(event.target.value)}
7288
placeholder="Write to the local PowerSync database"

packages/create/src/frameworks/react/add-ons/powersync/info.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@
1717
},
1818
{
1919
"name": "VITE_POWERSYNC_TOKEN",
20-
"description": "Development token for local testing",
20+
"description": "Client-visible development token for local testing; VITE_* env vars are exposed to the browser",
2121
"required": false,
22-
"secret": true,
2322
"file": ".env.local"
2423
}
2524
],

0 commit comments

Comments
 (0)