@livestore/livestore 0.0.46-dev.2 → 0.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +10 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/react/fixture.d.ts +17 -1
  4. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  5. package/dist/__tests__/react/fixture.js +27 -3
  6. package/dist/__tests__/react/fixture.js.map +1 -1
  7. package/dist/__tests__/react/utils/otel.d.ts +10 -0
  8. package/dist/__tests__/react/utils/otel.d.ts.map +1 -0
  9. package/dist/__tests__/react/utils/otel.js +42 -0
  10. package/dist/__tests__/react/utils/otel.js.map +1 -0
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/react/LiveStoreProvider.js +39 -6
  15. package/dist/react/LiveStoreProvider.js.map +1 -1
  16. package/dist/react/LiveStoreProvider.test.d.ts +2 -0
  17. package/dist/react/LiveStoreProvider.test.d.ts.map +1 -0
  18. package/dist/react/LiveStoreProvider.test.js +51 -0
  19. package/dist/react/LiveStoreProvider.test.js.map +1 -0
  20. package/dist/react/components/DiffableList copy.d.ts +19 -0
  21. package/dist/react/components/DiffableList copy.d.ts.map +1 -0
  22. package/dist/react/components/DiffableList copy.js +62 -0
  23. package/dist/react/components/DiffableList copy.js.map +1 -0
  24. package/dist/react/components/DiffableList.d.ts +13 -0
  25. package/dist/react/components/DiffableList.d.ts.map +1 -0
  26. package/dist/react/components/DiffableList.js +21 -0
  27. package/dist/react/components/DiffableList.js.map +1 -0
  28. package/dist/react/components/DiffableList2.d.ts +20 -0
  29. package/dist/react/components/DiffableList2.d.ts.map +1 -0
  30. package/dist/react/components/DiffableList2.js +119 -0
  31. package/dist/react/components/DiffableList2.js.map +1 -0
  32. package/dist/react/components/DiffableList3.d.ts +19 -0
  33. package/dist/react/components/DiffableList3.d.ts.map +1 -0
  34. package/dist/react/components/DiffableList3.js +62 -0
  35. package/dist/react/components/DiffableList3.js.map +1 -0
  36. package/dist/react/components/LiveList.d.ts +21 -0
  37. package/dist/react/components/LiveList.d.ts.map +1 -0
  38. package/dist/react/components/LiveList.js +31 -0
  39. package/dist/react/components/LiveList.js.map +1 -0
  40. package/dist/react/index.d.ts +1 -0
  41. package/dist/react/index.d.ts.map +1 -1
  42. package/dist/react/index.js +1 -0
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/react/useAtom.d.ts +1 -1
  45. package/dist/react/useAtom.d.ts.map +1 -1
  46. package/dist/react/useAtom.js.map +1 -1
  47. package/dist/react/useQuery.d.ts +4 -1
  48. package/dist/react/useQuery.d.ts.map +1 -1
  49. package/dist/react/useQuery.js +24 -19
  50. package/dist/react/useQuery.js.map +1 -1
  51. package/dist/react/useQuery.test.js +11 -11
  52. package/dist/react/useQuery.test.js.map +1 -1
  53. package/dist/react/useRow.d.ts.map +1 -1
  54. package/dist/react/useRow.js +14 -69
  55. package/dist/react/useRow.js.map +1 -1
  56. package/dist/react/useRow.test.js +440 -28
  57. package/dist/react/useRow.test.js.map +1 -1
  58. package/dist/react/useRowOld.d.ts +40 -0
  59. package/dist/react/useRowOld.d.ts.map +1 -0
  60. package/dist/react/useRowOld.js +134 -0
  61. package/dist/react/useRowOld.js.map +1 -0
  62. package/dist/react/useTemporaryQuery.d.ts +15 -3
  63. package/dist/react/useTemporaryQuery.d.ts.map +1 -1
  64. package/dist/react/useTemporaryQuery.js +60 -27
  65. package/dist/react/useTemporaryQuery.js.map +1 -1
  66. package/dist/react/useTemporaryQuery.test.js +10 -9
  67. package/dist/react/useTemporaryQuery.test.js.map +1 -1
  68. package/dist/reactive.d.ts +23 -5
  69. package/dist/reactive.d.ts.map +1 -1
  70. package/dist/reactive.js +44 -11
  71. package/dist/reactive.js.map +1 -1
  72. package/dist/reactive.test.js +1 -1
  73. package/dist/reactive.test.js.map +1 -1
  74. package/dist/reactiveQueries/base-class.d.ts +1 -1
  75. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  76. package/dist/reactiveQueries/base-class.js.map +1 -1
  77. package/dist/reactiveQueries/graphql.d.ts +2 -2
  78. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  79. package/dist/reactiveQueries/graphql.js +16 -10
  80. package/dist/reactiveQueries/graphql.js.map +1 -1
  81. package/dist/reactiveQueries/sql.d.ts +1 -1
  82. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  83. package/dist/reactiveQueries/sql.js +15 -11
  84. package/dist/reactiveQueries/sql.js.map +1 -1
  85. package/dist/reactiveQueries/sql.test.js +1 -40
  86. package/dist/reactiveQueries/sql.test.js.map +1 -1
  87. package/dist/store.d.ts +2 -2
  88. package/dist/store.d.ts.map +1 -1
  89. package/dist/store.js +10 -7
  90. package/dist/store.js.map +1 -1
  91. package/package.json +6 -6
  92. package/src/__tests__/react/fixture.tsx +35 -2
  93. package/src/__tests__/react/utils/otel.ts +61 -0
  94. package/src/index.ts +12 -1
  95. package/src/react/LiveStoreProvider.test.tsx +82 -0
  96. package/src/react/LiveStoreProvider.tsx +42 -7
  97. package/src/react/components/LiveList.tsx +84 -0
  98. package/src/react/index.ts +2 -0
  99. package/src/react/useAtom.ts +1 -1
  100. package/src/react/useQuery.test.tsx +11 -11
  101. package/src/react/useQuery.ts +29 -22
  102. package/src/react/useRow.test.tsx +502 -30
  103. package/src/react/useRow.ts +19 -107
  104. package/src/react/useTemporaryQuery.test.tsx +17 -16
  105. package/src/react/useTemporaryQuery.ts +96 -28
  106. package/src/reactive.test.ts +1 -1
  107. package/src/reactive.ts +76 -15
  108. package/src/reactiveQueries/base-class.ts +2 -1
  109. package/src/reactiveQueries/graphql.ts +21 -15
  110. package/src/reactiveQueries/sql.test.ts +1 -54
  111. package/src/reactiveQueries/sql.ts +20 -14
  112. package/src/store.ts +12 -8
  113. package/tsconfig.json +6 -1
  114. package/src/react/utils/useCleanup.ts +0 -25
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/livestore",
3
- "version": "0.0.46-dev.2",
3
+ "version": "0.0.46",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -38,9 +38,9 @@
38
38
  "@graphql-typed-document-node/core": "^3.2.0",
39
39
  "@opentelemetry/api": "^1.8.0",
40
40
  "lodash-es": "^4.17.21",
41
- "@livestore/common": "0.0.46-dev.2",
42
- "@livestore/utils": "0.0.46-dev.2",
43
- "effect-db-schema": "0.0.46-dev.2"
41
+ "@livestore/utils": "0.0.46",
42
+ "effect-db-schema": "0.0.46",
43
+ "@livestore/common": "0.0.46"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@opentelemetry/sdk-trace-base": "1.22.0",
@@ -55,7 +55,7 @@
55
55
  "typescript": "5.4.2",
56
56
  "vite": "5.1.6",
57
57
  "vitest": "^1.3.1",
58
- "@livestore/web": "0.0.46-dev.2"
58
+ "@livestore/web": "0.0.46"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "@tauri-apps/api": "^1.4.0",
@@ -76,6 +76,6 @@
76
76
  },
77
77
  "scripts": {
78
78
  "build": "tsc",
79
- "test": "vitest"
79
+ "test": "vitest && REACT_STRICT_MODE=1 vitest"
80
80
  }
81
81
  }
@@ -42,17 +42,35 @@ export const makeTodoMvc = async ({
42
42
  otelTracer,
43
43
  otelContext,
44
44
  useGlobalDbGraph = true,
45
+ strictMode = process.env.REACT_STRICT_MODE !== undefined,
45
46
  }: {
46
47
  otelTracer?: otel.Tracer
47
48
  otelContext?: otel.Context
48
49
  useGlobalDbGraph?: boolean
50
+ strictMode?: boolean
49
51
  } = {}) => {
50
52
  const AppComponentSchema = DbSchema.table('UserInfo', {
51
53
  username: DbSchema.text({ default: '' }),
54
+ text: DbSchema.text({ default: '' }),
52
55
  })
53
56
 
54
57
  const dbGraph = useGlobalDbGraph ? globalDbGraph : makeDbGraph()
55
58
 
59
+ const makeRenderCount = () => {
60
+ let val = 0
61
+
62
+ const inc = () => {
63
+ val += strictMode ? 0.5 : 1
64
+ }
65
+
66
+ return {
67
+ get val() {
68
+ return val
69
+ },
70
+ inc,
71
+ }
72
+ }
73
+
56
74
  const store = await createStore({
57
75
  schema,
58
76
  boot: (db) => db.execute(sql`INSERT OR IGNORE INTO app (id, newTodoText, filter) VALUES ('static', '', 'all');`),
@@ -67,9 +85,24 @@ export const makeTodoMvc = async ({
67
85
  // TODO improve typing of `LiveStoreContext`
68
86
  const storeContext: LiveStoreContext = { store } as TODO
69
87
 
88
+ const MaybeStrictMode = strictMode ? React.StrictMode : React.Fragment
89
+
70
90
  const wrapper = ({ children }: any) => (
71
- <LiveStoreReact.LiveStoreContext.Provider value={storeContext}>{children}</LiveStoreReact.LiveStoreContext.Provider>
91
+ <MaybeStrictMode>
92
+ <LiveStoreReact.LiveStoreContext.Provider value={storeContext}>
93
+ {children}
94
+ </LiveStoreReact.LiveStoreContext.Provider>
95
+ </MaybeStrictMode>
72
96
  )
73
97
 
74
- return { wrapper, AppComponentSchema, store, dbGraph, cud }
98
+ return {
99
+ [Symbol.dispose]: () => store.destroy(),
100
+ wrapper,
101
+ AppComponentSchema,
102
+ store,
103
+ dbGraph,
104
+ cud,
105
+ makeRenderCount,
106
+ strictMode,
107
+ }
75
108
  }
@@ -0,0 +1,61 @@
1
+ import { identity } from '@livestore/utils/effect'
2
+ import type { Attributes } from '@opentelemetry/api'
3
+ import type { InMemorySpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base'
4
+
5
+ type SimplifiedNestedSpan = { _name: string; attributes: any; children: SimplifiedNestedSpan[] }
6
+
7
+ export const getSimplifiedRootSpan = (
8
+ exporter: InMemorySpanExporter,
9
+ mapAttributes?: (attributes: Attributes) => Attributes,
10
+ ) => {
11
+ const spans = exporter.getFinishedSpans()
12
+ const spansMap = new Map<string, NestedSpan>(spans.map((span) => [span.spanContext().spanId, { span, children: [] }]))
13
+
14
+ const mapAttributesfn = mapAttributes ?? identity
15
+
16
+ spansMap.forEach((nestedSpan) => {
17
+ const parentSpan = nestedSpan.span.parentSpanId ? spansMap.get(nestedSpan.span.parentSpanId) : undefined
18
+ if (parentSpan) {
19
+ parentSpan.children.push(nestedSpan)
20
+ }
21
+ })
22
+
23
+ type NestedSpan = { span: ReadableSpan; children: NestedSpan[] }
24
+ const rootSpan = spansMap.get(spans.find((_) => _.name === 'test')!.spanContext().spanId)!
25
+
26
+ const simplifySpan = (span: NestedSpan): SimplifiedNestedSpan =>
27
+ omitEmpty({
28
+ _name: span.span.name,
29
+ attributes: mapAttributesfn(span.span.attributes),
30
+ children: span.children
31
+ .filter((_) => _.span.name !== 'createStore')
32
+ // .sort((a, b) => compareHrTime(a.span.startTime, b.span.startTime))
33
+ .map(simplifySpan),
34
+ })
35
+
36
+ // console.dir(
37
+ // spans.map((_) => [_.spanContext().spanId, _.name, _.attributes, _.parentSpanId]),
38
+ // { depth: 10 },
39
+ // )
40
+
41
+ return simplifySpan(rootSpan)
42
+ }
43
+
44
+ // const compareHrTime = (a: [number, number], b: [number, number]) => {
45
+ // if (a[0] !== b[0]) return a[0] - b[0]
46
+ // return a[1] - b[1]
47
+ // }
48
+
49
+ const omitEmpty = (obj: any) => {
50
+ const result: any = {}
51
+ for (const key in obj) {
52
+ if (
53
+ obj[key] !== undefined &&
54
+ !(Array.isArray(obj[key]) && obj[key].length === 0) &&
55
+ Object.keys(obj[key]).length > 0
56
+ ) {
57
+ result[key] = obj[key]
58
+ }
59
+ }
60
+ return result
61
+ }
package/src/index.ts CHANGED
@@ -5,7 +5,18 @@ export type { QueryDefinition, LiveStoreCreateStoreOptions, LiveStoreContext } f
5
5
 
6
6
  export { MainDatabaseWrapper, type DebugInfo, emptyDebugInfo } from './MainDatabaseWrapper.js'
7
7
 
8
- export type { GetAtom, AtomDebugInfo, RefreshDebugInfo, SerializedAtom, Atom, Node, Ref, Effect } from './reactive.js'
8
+ export type {
9
+ GetAtom,
10
+ AtomDebugInfo,
11
+ RefreshDebugInfo,
12
+ ReactiveGraphSnapshot,
13
+ SerializedAtom,
14
+ SerializedEffect,
15
+ Atom,
16
+ Node,
17
+ Ref,
18
+ Effect,
19
+ } from './reactive.js'
9
20
  export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js'
10
21
  export { LiveStoreSQLQuery, querySQL, type MapRows } from './reactiveQueries/sql.js'
11
22
  export { LiveStoreGraphQLQuery, queryGraphQL } from './reactiveQueries/graphql.js'
@@ -0,0 +1,82 @@
1
+ import type { StorageDatabase } from '@livestore/common'
2
+ import { sql } from '@livestore/common'
3
+ import { makeDb } from '@livestore/web'
4
+ import { render, screen, waitFor, waitForElementToBeRemoved } from '@testing-library/react'
5
+ import React from 'react'
6
+ import { describe, expect, it } from 'vitest'
7
+
8
+ import { parseTodos, schema } from '../__tests__/react/fixture.js'
9
+ import { querySQL } from '../reactiveQueries/sql.js'
10
+ import type { BootDb, Store } from '../store.js'
11
+ import * as LiveStoreReact from './index.js'
12
+ import { LiveStoreProvider } from './LiveStoreProvider.js'
13
+
14
+ class TestInMemoryStorage implements StorageDatabase {
15
+ filename = '__test__in-memory__'
16
+
17
+ constructor() {}
18
+
19
+ execute = async () => {}
20
+
21
+ mutate = async () => {}
22
+
23
+ export = async () => undefined
24
+
25
+ getMutationLogData = async (): Promise<Uint8Array> => new Uint8Array()
26
+
27
+ dangerouslyReset = async () => {}
28
+ shutdown = async () => {
29
+ await new Promise((resolve) => setTimeout(resolve, 200))
30
+ }
31
+ }
32
+
33
+ describe('LiveStoreProvider', () => {
34
+ it('simple', async () => {
35
+ let renderCount = 0
36
+
37
+ const allTodos$ = querySQL(`select * from todos`, { map: parseTodos })
38
+ let latestStoreCtx: { store: Store } | undefined = undefined
39
+
40
+ const App = () => {
41
+ renderCount++
42
+
43
+ latestStoreCtx = LiveStoreReact.useStore()
44
+
45
+ const todos = LiveStoreReact.useQuery(allTodos$)
46
+
47
+ return <div>{JSON.stringify(todos)}</div>
48
+ }
49
+
50
+ const Root = ({ forceUpdate }: { forceUpdate: number }) => {
51
+ const bootCb = React.useCallback(
52
+ (db: BootDb) =>
53
+ db.execute(sql`INSERT OR IGNORE INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0);`),
54
+ [],
55
+ )
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ const makeDbMemo = React.useMemo(() => makeDb(() => () => new TestInMemoryStorage()), [forceUpdate])
58
+ return (
59
+ <LiveStoreProvider schema={schema} fallback={<div>Loading LiveStore</div>} makeDb={makeDbMemo} boot={bootCb}>
60
+ <App />
61
+ </LiveStoreProvider>
62
+ )
63
+ }
64
+
65
+ const { rerender } = render(<Root forceUpdate={1} />)
66
+
67
+ expect(renderCount).toBe(0)
68
+
69
+ await waitForElementToBeRemoved(() => screen.getByText('Loading LiveStore'))
70
+
71
+ expect(renderCount).toBe(1)
72
+
73
+ rerender(<Root forceUpdate={2} />)
74
+
75
+ await waitFor(() => screen.getByText('Loading LiveStore'))
76
+ await waitForElementToBeRemoved(() => screen.getByText('Loading LiveStore'))
77
+
78
+ expect(renderCount).toBe(2)
79
+
80
+ await latestStoreCtx!.store.destroy()
81
+ })
82
+ })
@@ -61,14 +61,45 @@ const useCreateStore = <GraphQLContext extends BaseGraphQLContext>({
61
61
  makeDb,
62
62
  batchUpdates,
63
63
  }: LiveStoreCreateStoreOptions<GraphQLContext>) => {
64
- const [ctxValue, setCtxValue] = React.useState<StoreContext_ | undefined>()
64
+ const [_, rerender] = React.useState(0)
65
+ const ctxValueRef = React.useRef<StoreContext_ | undefined>(undefined)
66
+ const inputPropsCacheRef = React.useRef({
67
+ schema,
68
+ graphQLOptions,
69
+ otelTracer,
70
+ otelRootSpanContext,
71
+ boot,
72
+ makeDb,
73
+ batchUpdates,
74
+ })
75
+ const oldStoreAlreadyDestroyedRef = React.useRef(false)
76
+
77
+ if (
78
+ inputPropsCacheRef.current.schema !== schema ||
79
+ inputPropsCacheRef.current.graphQLOptions !== graphQLOptions ||
80
+ inputPropsCacheRef.current.otelTracer !== otelTracer ||
81
+ inputPropsCacheRef.current.otelRootSpanContext !== otelRootSpanContext ||
82
+ inputPropsCacheRef.current.boot !== boot ||
83
+ inputPropsCacheRef.current.makeDb !== makeDb ||
84
+ inputPropsCacheRef.current.batchUpdates !== batchUpdates
85
+ ) {
86
+ inputPropsCacheRef.current = {
87
+ schema,
88
+ graphQLOptions,
89
+ otelTracer,
90
+ otelRootSpanContext,
91
+ boot,
92
+ makeDb,
93
+ batchUpdates,
94
+ }
95
+ ctxValueRef.current?.store.destroy()
96
+ oldStoreAlreadyDestroyedRef.current = true
97
+ ctxValueRef.current = undefined
98
+ }
65
99
 
66
100
  React.useEffect(() => {
67
101
  let store: Store | undefined
68
102
 
69
- // resetting the store context while we're creating a new store
70
- setCtxValue(undefined)
71
-
72
103
  void (async () => {
73
104
  try {
74
105
  store = await createStore({
@@ -80,16 +111,20 @@ const useCreateStore = <GraphQLContext extends BaseGraphQLContext>({
80
111
  makeDb,
81
112
  batchUpdates,
82
113
  })
83
- setCtxValue({ store })
114
+ ctxValueRef.current = { store }
115
+ oldStoreAlreadyDestroyedRef.current = false
116
+ rerender((c) => c + 1)
84
117
  } catch (e) {
85
118
  shouldNeverHappen(`Error creating LiveStore store: ${e}`)
86
119
  }
87
120
  })()
88
121
 
89
122
  return () => {
90
- store?.destroy()
123
+ if (oldStoreAlreadyDestroyedRef.current === false) {
124
+ store?.destroy()
125
+ }
91
126
  }
92
127
  }, [schema, graphQLOptions, otelTracer, otelRootSpanContext, boot, makeDb, batchUpdates])
93
128
 
94
- return ctxValue
129
+ return ctxValueRef.current
95
130
  }
@@ -0,0 +1,84 @@
1
+ import React from 'react'
2
+
3
+ import type { LiveQuery } from '../../reactiveQueries/base-class.js'
4
+ import { computed } from '../../reactiveQueries/js.js'
5
+ import { useQuery } from '../useQuery.js'
6
+ import { useTemporaryQuery } from '../useTemporaryQuery.js'
7
+
8
+ /*
9
+ TODO:
10
+ - [ ] Bring back incremental rendering (see https://github.com/livestorejs/livestore/pull/55)
11
+ - [ ] Enable exit animations
12
+ */
13
+
14
+ export type LiveListProps<TItem> = {
15
+ items$: LiveQuery<ReadonlyArray<TItem>>
16
+ // TODO refactor render-flag to allow for transition animations on add/remove
17
+ renderItem: (item: TItem, opts: { index: number; isInitialListRender: boolean }) => React.ReactNode
18
+ /** Needs to be unique across all list items */
19
+ getKey: (item: TItem, index: number) => string | number
20
+ }
21
+
22
+ /**
23
+ * This component is a helper component for rendering a list of items for a LiveQuery of an array of items.
24
+ * The idea is that instead of letting React handle the rendering of the items array directly,
25
+ * we derive a item LiveQuery for each item which moves the reactivity to the item level when a single item changes.
26
+ *
27
+ * In the future we want to make this component even more efficient by using incremental rendering (https://github.com/livestorejs/livestore/pull/55)
28
+ * e.g. when an item is added/removed/moved to only re-render the affected DOM nodes.
29
+ */
30
+ export const LiveList = <TItem,>({ items$, renderItem, getKey }: LiveListProps<TItem>): React.ReactNode => {
31
+ const [hasMounted, setHasMounted] = React.useState(false)
32
+
33
+ React.useEffect(() => setHasMounted(true), [])
34
+
35
+ const keysCb = React.useCallback(() => computed((get) => get(items$).map(getKey)), [getKey, items$])
36
+ const keys = useTemporaryQuery(keysCb, 'fixed')
37
+ const arr = React.useMemo(
38
+ () =>
39
+ keys.map(
40
+ (key) =>
41
+ // TODO figure out a way so that `item$` returns an ordered lookup map to more efficiently find the item by key
42
+ [key, computed((get) => get(items$).find((item) => getKey(item, 0) === key)!) as LiveQuery<TItem>] as const,
43
+ ),
44
+ [getKey, items$, keys],
45
+ )
46
+
47
+ return (
48
+ <>
49
+ {arr.map(([key, item$], index) => (
50
+ <ItemWrapperMemo
51
+ key={key}
52
+ itemKey={key}
53
+ item$={item$}
54
+ opts={{ isInitialListRender: !hasMounted, index }}
55
+ renderItem={renderItem}
56
+ />
57
+ ))}
58
+ </>
59
+ )
60
+ }
61
+
62
+ const ItemWrapper = <TItem,>({
63
+ item$,
64
+ opts,
65
+ renderItem,
66
+ }: {
67
+ itemKey: string | number
68
+ item$: LiveQuery<TItem>
69
+ opts: { index: number; isInitialListRender: boolean }
70
+ renderItem: (item: TItem, opts: { index: number; isInitialListRender: boolean }) => React.ReactNode
71
+ }) => {
72
+ const item = useQuery(item$)
73
+
74
+ return <>{renderItem(item, opts)}</>
75
+ }
76
+
77
+ const ItemWrapperMemo = React.memo(
78
+ ItemWrapper,
79
+ (prev, next) =>
80
+ prev.itemKey === next.itemKey &&
81
+ prev.renderItem === prev.renderItem &&
82
+ prev.opts.index === next.opts.index &&
83
+ prev.opts.isInitialListRender === next.opts.isInitialListRender,
84
+ ) as typeof ItemWrapper
@@ -12,5 +12,7 @@ export {
12
12
  } from './useRow.js'
13
13
  export { useAtom } from './useAtom.js'
14
14
 
15
+ export { LiveList, type LiveListProps } from './components/LiveList.js'
16
+
15
17
  // Needed to make TS happy
16
18
  export type { TypedDocumentNode } from '@graphql-typed-document-node/core'
@@ -8,7 +8,7 @@ import type { Dispatch, SetStateAction } from './useRow.js'
8
8
 
9
9
  export const useAtom = <TQuery extends LiveQuery<any, QueryInfoRow<any> | QueryInfoCol<any, any>>>(
10
10
  query$: TQuery,
11
- ): [value: TQuery['__result!'], setValue: Dispatch<SetStateAction<TQuery['__result!']>>] => {
11
+ ): [value: TQuery['__result!'], setValue: Dispatch<SetStateAction<Partial<TQuery['__result!']>>>] => {
12
12
  const query$Ref = useQueryRef(query$)
13
13
 
14
14
  const { store } = useStore()
@@ -8,15 +8,15 @@ import * as LiveStoreReact from './index.js'
8
8
 
9
9
  describe('useQuery', () => {
10
10
  it('simple', async () => {
11
- let renderCount = 0
11
+ const { wrapper, store, cud, makeRenderCount } = await makeTodoMvc()
12
12
 
13
- const { wrapper, store, cud } = await makeTodoMvc()
13
+ const renderCount = makeRenderCount()
14
14
 
15
15
  const allTodos$ = querySQL(`select * from todos`, { map: parseTodos })
16
16
 
17
17
  const { result } = renderHook(
18
18
  () => {
19
- renderCount++
19
+ renderCount.inc()
20
20
 
21
21
  return LiveStoreReact.useQuery(allTodos$)
22
22
  },
@@ -24,19 +24,19 @@ describe('useQuery', () => {
24
24
  )
25
25
 
26
26
  expect(result.current.length).toBe(0)
27
- expect(renderCount).toBe(1)
27
+ expect(renderCount.val).toBe(1)
28
28
 
29
29
  act(() => store.mutate(cud.todos.insert({ id: 't1', text: 'buy milk', completed: false })))
30
30
 
31
31
  expect(result.current.length).toBe(1)
32
32
  expect(result.current[0]!.text).toBe('buy milk')
33
- expect(renderCount).toBe(2)
33
+ expect(renderCount.val).toBe(2)
34
34
  })
35
35
 
36
36
  it('same `useQuery` hook invoked with different queries', async () => {
37
- let renderCount = 0
37
+ const { wrapper, store, cud, makeRenderCount } = await makeTodoMvc()
38
38
 
39
- const { wrapper, store, cud } = await makeTodoMvc()
39
+ const renderCount = makeRenderCount()
40
40
 
41
41
  const todo1$ = querySQL(`select * from todos where id = 't1'`, { label: 'libraryTracksView1', map: parseTodos })
42
42
  const todo2$ = querySQL(`select * from todos where id = 't2'`, { label: 'libraryTracksView2', map: parseTodos })
@@ -48,7 +48,7 @@ describe('useQuery', () => {
48
48
 
49
49
  const { result, rerender } = renderHook(
50
50
  (todoId: string) => {
51
- renderCount++
51
+ renderCount.inc()
52
52
 
53
53
  const query$ = React.useMemo(() => (todoId === 't1' ? todo1$ : todo2$), [todoId])
54
54
 
@@ -58,16 +58,16 @@ describe('useQuery', () => {
58
58
  )
59
59
 
60
60
  expect(result.current).toBe('buy milk')
61
- expect(renderCount).toBe(1)
61
+ expect(renderCount.val).toBe(1)
62
62
 
63
63
  act(() => store.mutate(cud.todos.update({ where: { id: 't1' }, values: { text: 'buy soy milk' } })))
64
64
 
65
65
  expect(result.current).toBe('buy soy milk')
66
- expect(renderCount).toBe(2)
66
+ expect(renderCount.val).toBe(2)
67
67
 
68
68
  rerender('t2')
69
69
 
70
70
  expect(result.current).toBe('buy eggs')
71
- expect(renderCount).toBe(3)
71
+ expect(renderCount.val).toBe(3)
72
72
  })
73
73
  })