@fireproof/use-fireproof 0.24.3-dev-token-claims → 0.24.3-dev-20261224
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.
- package/package.json +10 -10
- package/react/use-live-query.js +11 -12
- package/react/use-live-query.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fireproof/use-fireproof",
|
|
3
|
-
"version": "0.24.3-dev-
|
|
3
|
+
"version": "0.24.3-dev-20261224",
|
|
4
4
|
"description": "Fireproof live ledger, JavaScript API and React hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"gptdoc": "Fireproof/React/Usage: import { useFireproof } from 'use-fireproof'; function WordCounterApp() { const { useLiveQuery, useDocument } = useFireproof('my-word-app'); const { doc: wordInput, merge: updateWordInput, save: saveWordInput, reset: clearWordInput } = useDocument({ word: '', timestamp: Date.now() }); const recentWords = useLiveQuery('timestamp', { descending: true, limit: 10 }); const { doc: { totalSubmitted }, merge: updateTotalSubmitted, save: saveTotalSubmitted } = useDocument({ _id: 'word-counter', totalSubmitted: 0 }); const handleWordSubmission = (e) => { e.preventDefault(); updateTotalSubmitted({ totalSubmitted: totalSubmitted + 1 }); saveTotalSubmitted(); saveWordInput(); clearWordInput();}; return (<><p>{totalSubmitted} words submitted</p><form onSubmit={handleWordSubmission}><input type='text' value={wordInput.word} onChange={e => updateWordInput({ word: e.target.value })} placeholder='Enter a word' /></form><ul>{recentWords.docs.map(entry => (<li key={entry._id}>{entry.word}</li>))} </ul></>) } export default WordCounterApp;",
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@adviser/cement": "0.5.5",
|
|
24
|
-
"@fireproof/core-base": "0.24.3-dev-
|
|
25
|
-
"@fireproof/core-gateways-cloud": "0.24.3-dev-
|
|
26
|
-
"@fireproof/core-keybag": "0.24.3-dev-
|
|
27
|
-
"@fireproof/core-protocols-dashboard": "0.24.3-dev-
|
|
28
|
-
"@fireproof/core-runtime": "0.24.3-dev-
|
|
29
|
-
"@fireproof/core-types-base": "0.24.3-dev-
|
|
30
|
-
"@fireproof/core-types-blockstore": "0.24.3-dev-
|
|
31
|
-
"@fireproof/core-types-protocols-cloud": "0.24.3-dev-
|
|
32
|
-
"@fireproof/vendor": "0.24.3-dev-
|
|
24
|
+
"@fireproof/core-base": "0.24.3-dev-20261224",
|
|
25
|
+
"@fireproof/core-gateways-cloud": "0.24.3-dev-20261224",
|
|
26
|
+
"@fireproof/core-keybag": "0.24.3-dev-20261224",
|
|
27
|
+
"@fireproof/core-protocols-dashboard": "0.24.3-dev-20261224",
|
|
28
|
+
"@fireproof/core-runtime": "0.24.3-dev-20261224",
|
|
29
|
+
"@fireproof/core-types-base": "0.24.3-dev-20261224",
|
|
30
|
+
"@fireproof/core-types-blockstore": "0.24.3-dev-20261224",
|
|
31
|
+
"@fireproof/core-types-protocols-cloud": "0.24.3-dev-20261224",
|
|
32
|
+
"@fireproof/vendor": "0.24.3-dev-20261224",
|
|
33
33
|
"dompurify": "3.3.1",
|
|
34
34
|
"jose": "6.1.3",
|
|
35
35
|
"react": "19.2.3",
|
package/react/use-live-query.js
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
|
-
import { useCallback, useEffect, useMemo,
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
2
|
export function createUseLiveQuery(database) {
|
|
3
3
|
return function useLiveQuery(mapFn, query = {}, initialRows = []) {
|
|
4
4
|
const [hydrated, setHydrated] = useState(false);
|
|
5
|
-
const [result, setResult] = useState({
|
|
5
|
+
const [result, setResult] = useState(() => ({
|
|
6
6
|
docs: initialRows.map((r) => r.doc).filter((r) => !!r),
|
|
7
7
|
rows: initialRows,
|
|
8
|
-
});
|
|
8
|
+
}));
|
|
9
9
|
const queryString = useMemo(() => JSON.stringify(query), [query]);
|
|
10
10
|
const mapFnString = useMemo(() => mapFn.toString(), [mapFn]);
|
|
11
|
-
const requestIdRef = useRef(0);
|
|
12
11
|
useEffect(() => {
|
|
13
12
|
setHydrated(false);
|
|
14
|
-
requestIdRef.current += 1;
|
|
15
13
|
}, [mapFnString, queryString]);
|
|
16
14
|
const refreshRows = useCallback(async () => {
|
|
17
|
-
const myReq = ++requestIdRef.current;
|
|
18
15
|
const res = await database.query(mapFn, { ...query, includeDocs: true });
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, [database, mapFn, query, mapFnString, queryString]);
|
|
16
|
+
database.logger.Debug().Str("dbname", database.name).Uint64("rows", res.rows.length).Msg("Refreshing live query");
|
|
17
|
+
setResult(res);
|
|
18
|
+
setHydrated(true);
|
|
19
|
+
}, [database, mapFnString, queryString]);
|
|
24
20
|
useEffect(() => {
|
|
25
|
-
|
|
21
|
+
database.logger.Debug().Str("dbname", database.name).Msg("Initializing live query subscription");
|
|
26
22
|
const unsubscribe = database.subscribe(refreshRows);
|
|
27
23
|
return () => {
|
|
28
24
|
unsubscribe();
|
|
29
25
|
};
|
|
30
26
|
}, [database, refreshRows]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
refreshRows();
|
|
29
|
+
}, [database, queryString, mapFnString]);
|
|
31
30
|
return { ...result, hydrated };
|
|
32
31
|
};
|
|
33
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-live-query.js","sourceRoot":"","sources":["../../jsr/react/use-live-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-live-query.js","sourceRoot":"","sources":["../../jsr/react/use-live-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOlE,MAAM,UAAU,kBAAkB,CAAC,QAAkB,EAAE;IACrD,OAAO,SAAS,YAAY,CAC1B,KAAwB,EACxB,KAAK,GAAG,EAAE,EACV,WAAW,GAA0B,EAAE,EACb;QAC1B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA6C,GAAG,EAAE,CAAC,CAAC;YACtF,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC,CAAC;QAEJ,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAE7D,SAAS,CAAC,GAAG,EAAE,CAAC;YACd,WAAW,CAAC,KAAK,CAAC,CAAC;QAAA,CACpB,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAU,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAClH,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,WAAW,CAAC,IAAI,CAAC,CAAC;QAAA,CACnB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzC,SAAS,CAAC,GAAG,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACjG,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACpD,OAAO,GAAG,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;YAAA,CACf,CAAC;QAAA,CACH,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAE5B,SAAS,CAAC,GAAG,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;QAAA,CACf,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzC,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAA,CAChC,CAAC;AAAA,CACH"}
|