|
1 | 1 | {{addImport "import './index.css';"}} |
2 | 2 |
|
3 | | -{{#if isReact}} |
4 | | -{{addImport "import ReactDOM from 'react-dom/client';"}} |
5 | | -{{addImport "import {App} from './App';"}} |
| 3 | +{{#if react}} |
| 4 | + {{addImport "import ReactDOM from 'react-dom/client';"}} |
| 5 | + {{addImport "import {App} from './App';"}} |
6 | 6 |
|
7 | | -addEventListener('load', () => |
8 | | - ReactDOM.createRoot(document.getElementById('app')!).render(<App />), |
9 | | -); |
10 | | - |
11 | | -{{else}} |
12 | | -{{addImport "import {createStore} from 'tinybase';"}} |
13 | | - |
14 | | -const onClick = (id: string, onClick: () => void) => |
15 | | - document.getElementById(id)!.addEventListener('click', onClick); |
16 | | - |
17 | | -const updateJson = (id: string, content: unknown) => |
18 | | - (document.getElementById(id)!.innerText = JSON.stringify(content, null, 2)); |
19 | | - |
20 | | -const getRandom = (max = 100) => Math.floor(Math.random() * max); |
21 | | - |
22 | | -addEventListener('load', () => { |
23 | | - const store = createStore(); |
24 | | - |
25 | | - onClick('countButton', () => store.setValue('counter', (value) => value + 1)); |
26 | | - onClick('randomButton', () => store.setValue('random', getRandom())); |
27 | | - onClick('addPetButton', () => |
28 | | - store.addRow('pets', { |
29 | | - name: ['fido', 'felix', 'bubbles', 'lowly', 'polly'][getRandom(5)], |
30 | | - species: store.getRowIds('species')[getRandom(5)], |
31 | | - }), |
| 7 | + addEventListener('load', () => |
| 8 | + ReactDOM.createRoot(document.getElementById('app')!).render(<App />), |
32 | 9 | ); |
33 | 10 |
|
34 | | - store.addValuesListener(() => updateJson('valuesJson', store.getValues())); |
35 | | - store.addTablesListener(() => updateJson('tablesJson', store.getTables())); |
36 | | - |
37 | | - store |
38 | | - .setValue('counter', 0) |
39 | | - .setRow('pets', '0', {name: 'fido', species: 'dog'}) |
40 | | - .setTable('species', { |
41 | | - dog: {price: 5}, |
42 | | - cat: {price: 4}, |
43 | | - fish: {price: 2}, |
44 | | - worm: {price: 1}, |
45 | | - parrot: {price: 3}, |
46 | | - }); |
47 | | -}); |
| 11 | +{{else}} |
| 12 | + {{addImport "import {createStore} from 'tinybase';"}} |
| 13 | + |
| 14 | + const onClick = (id: string, onClick: () => void) => |
| 15 | + document.getElementById(id)!.addEventListener('click', onClick); |
| 16 | + |
| 17 | + const updateJson = (id: string, content: unknown) => |
| 18 | + (document.getElementById(id)!.innerText = JSON.stringify(content, null, 2)); |
| 19 | + |
| 20 | + const getRandom = (max = 100) => Math.floor(Math.random() * max); |
| 21 | + |
| 22 | + addEventListener('load', () => { |
| 23 | + const store = createStore(); |
| 24 | + |
| 25 | + onClick('countButton', () => store.setValue('counter', (value) => value + 1)); |
| 26 | + onClick('randomButton', () => store.setValue('random', getRandom())); |
| 27 | + onClick('addPetButton', () => |
| 28 | + store.addRow('pets', { |
| 29 | + name: ['fido', 'felix', 'bubbles', 'lowly', 'polly'][getRandom(5)], |
| 30 | + species: store.getRowIds('species')[getRandom(5)], |
| 31 | + }), |
| 32 | + ); |
| 33 | + |
| 34 | + store.addValuesListener(() => updateJson('valuesJson', store.getValues())); |
| 35 | + store.addTablesListener(() => updateJson('tablesJson', store.getTables())); |
| 36 | + |
| 37 | + store |
| 38 | + .setValue('counter', 0) |
| 39 | + .setRow('pets', '0', {name: 'fido', species: 'dog'}) |
| 40 | + .setTable('species', { |
| 41 | + dog: {price: 5}, |
| 42 | + cat: {price: 4}, |
| 43 | + fish: {price: 2}, |
| 44 | + worm: {price: 1}, |
| 45 | + parrot: {price: 3}, |
| 46 | + }); |
| 47 | + }); |
48 | 48 | {{/if}} |
0 commit comments