|
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