|
1 | 1 | import { DBConnection } from './module_bindings';
|
2 |
| -import { useState } from 'react'; |
| 2 | +import { useEffect, useState } from 'react'; |
3 | 3 | import './App.css';
|
4 | 4 | import { Identity } from '@clockworklabs/spacetimedb-sdk';
|
5 | 5 |
|
6 | 6 | function App() {
|
7 |
| - const [connection] = useState<DBConnection>( |
| 7 | + const [connection] = useState(() => |
8 | 8 | DBConnection.builder()
|
9 | 9 | .withUri('ws://localhost:3000')
|
10 |
| - .withModuleName('goldbreezycanid') |
| 10 | + .withModuleName('game') |
11 | 11 | .onDisconnect(() => {
|
12 | 12 | console.log('disconnected');
|
13 | 13 | })
|
14 | 14 | .onConnectError(() => {
|
15 | 15 | console.log('client_error');
|
16 | 16 | })
|
17 |
| - .onConnect((_, identity, _token) => { |
| 17 | + .onConnect((conn, identity, _token) => { |
18 | 18 | console.log(
|
19 | 19 | 'Connected to SpacetimeDB with identity:',
|
20 | 20 | identity.toHexString()
|
21 | 21 | );
|
| 22 | + |
| 23 | + conn.subscriptionBuilder().subscribe(['SELECT * FROM player']); |
22 | 24 | })
|
23 | 25 | .withCredentials([
|
24 | 26 | Identity.fromString(
|
25 |
| - '49f2d472cabfbc7ded52ac1f93316750dc8ea162aac97cc52a340aed221b7ff3' |
| 27 | + '93dda09db9a56d8fa6c024d843e805d8262191db3b4ba84c5efcd1ad451fed4e' |
26 | 28 | ),
|
27 |
| - 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJoZXhfaWRlbnRpdHkiOiI0OWYyZDQ3MmNhYmZiYzdkZWQ1MmFjMWY5MzMxNjc1MGRjOGVhMTYyYWFjOTdjYzUyYTM0MGFlZDIyMWI3ZmYzIiwiaWF0IjoxNjgwMTkwNDc5fQ.KPz0DjrWb6I5c51wa71FGTgWz0Nh6CiNycM0ynmDDNkGjRxsci5cmiEjHQdYKyIeaG9MizSVPGlaDJ2Z7uctcg', |
| 29 | + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJoZXhfaWRlbnRpdHkiOiI5M2RkYTA5ZGI5YTU2ZDhmYTZjMDI0ZDg0M2U4MDVkODI2MjE5MWRiM2I0YmE4NGM1ZWZjZDFhZDQ1MWZlZDRlIiwiaWF0IjoxNzI4MzY3NDk0LCJleHAiOm51bGx9.ua3DQaiXo5i3Ye0okughs84PV9uZLCnov26zvCMG-3ibqGg6vH0uDDY6L-zDf8XiFgUqEIcvnJvuKLThPDipjQ', |
28 | 30 | ])
|
29 | 31 | .build()
|
30 | 32 | );
|
31 | 33 |
|
| 34 | + useEffect(() => { |
| 35 | + connection.db.player.onInsert(player => { |
| 36 | + console.log(player); |
| 37 | + }); |
| 38 | + |
| 39 | + setTimeout(() => { |
| 40 | + console.log(Array.from(connection.db.player.iter())); |
| 41 | + }, 5000); |
| 42 | + }, [connection]); |
| 43 | + |
32 | 44 | return (
|
33 | 45 | <div className="App">
|
34 | 46 | <h1>Typescript SDK Test!</h1>
|
35 | 47 | <p>{connection.identity?.toHexString()}</p>
|
| 48 | + |
| 49 | + <button |
| 50 | + onClick={() => |
| 51 | + connection.reducers.createPlayer('Hello', { x: 10, y: 40 }) |
| 52 | + } |
| 53 | + > |
| 54 | + Update |
| 55 | + </button> |
36 | 56 | </div>
|
37 | 57 | );
|
38 | 58 | }
|
|
0 commit comments