@unisim/sdk 0.134.0 → 0.135.0
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +67 -1
- package/dist/usage.js.map +1 -1
- package/dist/userPrefs.d.ts +15 -0
- package/dist/userPrefs.d.ts.map +1 -0
- package/dist/userPrefs.js +144 -0
- package/dist/userPrefs.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export type { SeatClaim } from './seatSession.js';
|
|
|
16
16
|
export { useChangelog } from './changelog.js';
|
|
17
17
|
export type { UseChangelogOptions, UseChangelogResult } from './changelog.js';
|
|
18
18
|
export { track, useUsageTracker } from './usage.js';
|
|
19
|
+
export { useUserPrefs, type UserPrefs, type UseUserPrefs } from './userPrefs.js';
|
|
19
20
|
export { useOrgBranding } from './branding.js';
|
|
20
21
|
export { BRAND, NEUTRAL, SEMANTIC, LIGHT_THEME, DARK_THEME, brandCssVars, } from './brand.js';
|
|
21
22
|
export type { BrandTheme } from './brand.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACtG,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAM7E,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE7E,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export { useHasAccess, useHasFeature, useSeat } from './access.js';
|
|
|
24
24
|
export { useSeatSession } from './seatSession.js';
|
|
25
25
|
export { useChangelog } from './changelog.js';
|
|
26
26
|
export { track, useUsageTracker } from './usage.js';
|
|
27
|
+
export { useUserPrefs } from './userPrefs.js';
|
|
27
28
|
export { useOrgBranding } from './branding.js';
|
|
28
29
|
export { BRAND, NEUTRAL, SEMANTIC, LIGHT_THEME, DARK_THEME, brandCssVars, } from './brand.js';
|
|
29
30
|
export { downscaleImage } from './image.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,4BAA4B;AAC5B,0FAA0F;AAC1F,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAGtG,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7E,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,uDAAuD;AACvD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAQ5B,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGpF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAgIA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CA8BtC;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI,CAavF"}
|
package/dist/usage.js
CHANGED
|
@@ -3,16 +3,61 @@ import { useEffect, useRef } from 'react';
|
|
|
3
3
|
import { useUniversal } from './provider.js';
|
|
4
4
|
const FLUSH_INTERVAL_MS = 5_000;
|
|
5
5
|
const MAX_BATCH_SIZE = 50;
|
|
6
|
+
/**
|
|
7
|
+
* How many events may sit unsent before the oldest are dropped.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ Without this the buffer is UNBOUNDED. `flush()` re-queues a failed batch,
|
|
10
|
+
* so any failure that cannot resolve itself grows the buffer for the whole
|
|
11
|
+
* session — in every signed-in user's browser.
|
|
12
|
+
*/
|
|
13
|
+
const MAX_BUFFER = 500;
|
|
14
|
+
/** Give up on a batch after this many consecutive transient failures. */
|
|
15
|
+
const MAX_ATTEMPTS = 3;
|
|
16
|
+
/**
|
|
17
|
+
* Whether an insert error will still be failing on the next attempt.
|
|
18
|
+
*
|
|
19
|
+
* ⚠️ THIS IS THE POINT OF THE WHOLE RETRY BRANCH. Re-queueing is right for a
|
|
20
|
+
* network blip and catastrophic for anything structural: a batch that can never
|
|
21
|
+
* succeed comes back every FLUSH_INTERVAL_MS, for ever, and the buffer only
|
|
22
|
+
* grows. The case that actually happens is a new app whose `product_code` is
|
|
23
|
+
* missing from the Postgres enum — Postgres answers `22P02 invalid input value
|
|
24
|
+
* for enum`, which is permanent by definition, and the old code retried it
|
|
25
|
+
* every five seconds in every signed-in browser while reporting nothing but a
|
|
26
|
+
* console line.
|
|
27
|
+
*
|
|
28
|
+
* Conservative on purpose: anything unrecognised is treated as transient and
|
|
29
|
+
* retried, because dropping a usage event is worse than sending it twice.
|
|
30
|
+
*/
|
|
31
|
+
function isPermanentFailure(err) {
|
|
32
|
+
const code = err?.code;
|
|
33
|
+
if (typeof code !== 'string')
|
|
34
|
+
return false;
|
|
35
|
+
return (code === '22P02' || // invalid input value for enum — the missing product_code
|
|
36
|
+
code.startsWith('23') || // integrity constraint violation
|
|
37
|
+
code === '42501' || // insufficient privilege / RLS refusal
|
|
38
|
+
code === '42703' || // undefined column
|
|
39
|
+
code === '42P01' // undefined table
|
|
40
|
+
);
|
|
41
|
+
}
|
|
6
42
|
class UsageQueue {
|
|
7
43
|
send;
|
|
8
44
|
buffer = [];
|
|
9
45
|
flushing = false;
|
|
10
46
|
timer = null;
|
|
47
|
+
attempts = 0;
|
|
48
|
+
/** Say it once. A structural failure repeats every flush, and a console line
|
|
49
|
+
* per five seconds buries whatever the developer was actually reading. */
|
|
50
|
+
warned = false;
|
|
11
51
|
constructor(send) {
|
|
12
52
|
this.send = send;
|
|
13
53
|
}
|
|
14
54
|
enqueue(event) {
|
|
15
55
|
this.buffer.push(event);
|
|
56
|
+
// Oldest out first: if something is wedged, the recent events are the ones
|
|
57
|
+
// worth keeping.
|
|
58
|
+
if (this.buffer.length > MAX_BUFFER) {
|
|
59
|
+
this.buffer.splice(0, this.buffer.length - MAX_BUFFER);
|
|
60
|
+
}
|
|
16
61
|
if (this.buffer.length >= MAX_BATCH_SIZE) {
|
|
17
62
|
void this.flush();
|
|
18
63
|
}
|
|
@@ -31,10 +76,31 @@ class UsageQueue {
|
|
|
31
76
|
const batch = this.buffer.splice(0, this.buffer.length);
|
|
32
77
|
try {
|
|
33
78
|
await this.send(batch);
|
|
79
|
+
this.attempts = 0;
|
|
34
80
|
}
|
|
35
81
|
catch (err) {
|
|
36
|
-
|
|
82
|
+
if (isPermanentFailure(err)) {
|
|
83
|
+
// Dropped, NOT re-queued. See isPermanentFailure.
|
|
84
|
+
if (!this.warned) {
|
|
85
|
+
this.warned = true;
|
|
86
|
+
console.error('[unisim/sdk] usage events rejected and will not be retried — this is ' +
|
|
87
|
+
'a schema or permission problem, not a network one. If this is a new ' +
|
|
88
|
+
'app, its product code is probably missing from the Postgres ' +
|
|
89
|
+
'`product_code` enum.', err);
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.attempts += 1;
|
|
94
|
+
if (this.attempts >= MAX_ATTEMPTS) {
|
|
95
|
+
this.attempts = 0;
|
|
96
|
+
console.error(`[unisim/sdk] usage flush failed ${MAX_ATTEMPTS}x; dropping ${batch.length} event(s)`, err);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
console.warn('[unisim/sdk] usage flush failed; re-queuing', err);
|
|
37
100
|
this.buffer.unshift(...batch);
|
|
101
|
+
if (this.buffer.length > MAX_BUFFER) {
|
|
102
|
+
this.buffer.splice(0, this.buffer.length - MAX_BUFFER);
|
|
103
|
+
}
|
|
38
104
|
}
|
|
39
105
|
finally {
|
|
40
106
|
this.flushing = false;
|
package/dist/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQ5C,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAC/B,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,UAAU;
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type UserPrefs = Record<string, unknown>;
|
|
2
|
+
export interface UseUserPrefs {
|
|
3
|
+
/** The merged bag. Never null; `{}` before anything is set. */
|
|
4
|
+
prefs: UserPrefs;
|
|
5
|
+
/** Read one value with a fallback. */
|
|
6
|
+
pref: <T>(key: string, fallback: T) => T;
|
|
7
|
+
/** Set one value. Writes through to storage and, when signed in, the row. */
|
|
8
|
+
setPref: (key: string, value: unknown) => void;
|
|
9
|
+
/** Clear everything for this app, locally AND remotely. */
|
|
10
|
+
reset: () => Promise<void>;
|
|
11
|
+
/** True once the remote row has been consulted (or ruled out). */
|
|
12
|
+
loaded: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function useUserPrefs(): UseUserPrefs;
|
|
15
|
+
//# sourceMappingURL=userPrefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userPrefs.d.ts","sourceRoot":"","sources":["../src/userPrefs.ts"],"names":[],"mappings":"AAmCA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAgC/C,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,KAAK,EAAE,SAAS,CAAA;IAChB,sCAAsC;IACtC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,2DAA2D;IAC3D,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,YAAY,IAAI,YAAY,CAiG3C"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
// useUserPrefs — small UI preferences that follow a Universal ID between
|
|
3
|
+
// devices, and still work with no account at all.
|
|
4
|
+
//
|
|
5
|
+
// The case that prompted it (James, 2026-09-08): Universal PDF's placement hint
|
|
6
|
+
// has a "Don't show again" button. That was localStorage-only, so dismissing it
|
|
7
|
+
// on a laptop said nothing to the same person's phone — and, because nothing
|
|
8
|
+
// else in the app wrote that key, there was no way back from it either. Hence
|
|
9
|
+
// this, plus the `reset()` a "Reset defaults" row calls.
|
|
10
|
+
//
|
|
11
|
+
// ── Three decisions that shape the API ───────────────────────────────────────
|
|
12
|
+
//
|
|
13
|
+
// 1. **localStorage is read SYNCHRONOUSLY and is the first answer.** A hint
|
|
14
|
+
// whose dismissal arrives one network round-trip late is a hint that flashes
|
|
15
|
+
// on screen every single launch, which is worse than not syncing at all. The
|
|
16
|
+
// remote row is a second opinion that arrives later and corrects it.
|
|
17
|
+
//
|
|
18
|
+
// 2. **It works signed out.** Most Universal App visitors have no account. In
|
|
19
|
+
// that state this is exactly the localStorage flag it replaces, with no
|
|
20
|
+
// requests made and no behaviour lost.
|
|
21
|
+
//
|
|
22
|
+
// 3. **Merged, not replaced, on load.** A device that has dismissed something
|
|
23
|
+
// the server has not heard about must not lose it just because the server
|
|
24
|
+
// answered first. Remote wins per KEY it actually carries; local keeps
|
|
25
|
+
// everything else, and the union is written back.
|
|
26
|
+
//
|
|
27
|
+
// ⚠️ NOT a general key-value store, and it must not become one. The table
|
|
28
|
+
// behind it caps `data` at 8 KB precisely so this stays "did they dismiss the
|
|
29
|
+
// thing", not app state. Anything a user would be upset to lose belongs in that
|
|
30
|
+
// app's own storage.
|
|
31
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
32
|
+
import { useUniversal } from './provider.js';
|
|
33
|
+
const TABLE = 'user_app_prefs';
|
|
34
|
+
function storageKey(app) {
|
|
35
|
+
return `unisim:prefs:${app}`;
|
|
36
|
+
}
|
|
37
|
+
function readLocal(app) {
|
|
38
|
+
try {
|
|
39
|
+
const raw = localStorage.getItem(storageKey(app));
|
|
40
|
+
if (!raw)
|
|
41
|
+
return {};
|
|
42
|
+
const parsed = JSON.parse(raw);
|
|
43
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
44
|
+
? parsed
|
|
45
|
+
: {};
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Private mode, cleared site data, a browser blocking storage, or a value
|
|
49
|
+
// some earlier version wrote in a different shape. An empty bag is the
|
|
50
|
+
// right answer to all of them: the caller falls back to its defaults.
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function writeLocal(app, prefs) {
|
|
55
|
+
try {
|
|
56
|
+
localStorage.setItem(storageKey(app), JSON.stringify(prefs));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
/* storage unavailable — the in-memory value still holds for this session */
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function useUserPrefs() {
|
|
63
|
+
const { supabase, session, config } = useUniversal();
|
|
64
|
+
const app = config.product;
|
|
65
|
+
const userId = session?.user?.id ?? null;
|
|
66
|
+
// Synchronous first paint — see decision 1.
|
|
67
|
+
const [prefs, setPrefs] = useState(() => typeof window === 'undefined' ? {} : readLocal(app));
|
|
68
|
+
const [loaded, setLoaded] = useState(false);
|
|
69
|
+
// ── Pull the remote row and merge it in ────────────────────────────────────
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
let cancelled = false;
|
|
72
|
+
if (!userId) {
|
|
73
|
+
// Signed out: local is the whole truth, and there is nothing to wait for.
|
|
74
|
+
setLoaded(true);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
void (async () => {
|
|
78
|
+
const { data, error } = await supabase
|
|
79
|
+
.from(TABLE)
|
|
80
|
+
.select('data')
|
|
81
|
+
.eq('app', app)
|
|
82
|
+
.maybeSingle();
|
|
83
|
+
if (cancelled)
|
|
84
|
+
return;
|
|
85
|
+
if (error) {
|
|
86
|
+
// A missing table (migration not applied yet) or an RLS refusal must
|
|
87
|
+
// not break the app — it just means no cross-device sync this session.
|
|
88
|
+
console.warn('[unisim/sdk] could not read user prefs; using local only', error);
|
|
89
|
+
setLoaded(true);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const remote = (data?.data ?? {});
|
|
93
|
+
setPrefs((local) => {
|
|
94
|
+
const merged = { ...local, ...remote };
|
|
95
|
+
writeLocal(app, merged);
|
|
96
|
+
return merged;
|
|
97
|
+
});
|
|
98
|
+
setLoaded(true);
|
|
99
|
+
})();
|
|
100
|
+
return () => { cancelled = true; };
|
|
101
|
+
}, [supabase, app, userId]);
|
|
102
|
+
const persistRemote = useCallback((next) => {
|
|
103
|
+
if (!userId)
|
|
104
|
+
return;
|
|
105
|
+
// Fire-and-forget: a preference is not worth blocking a click on, and the
|
|
106
|
+
// local copy has already taken effect. A failure costs cross-device sync
|
|
107
|
+
// of one flag, which is why it warns rather than throwing.
|
|
108
|
+
void supabase
|
|
109
|
+
.from(TABLE)
|
|
110
|
+
.upsert({ user_id: userId, app, data: next }, { onConflict: 'user_id,app' })
|
|
111
|
+
.then(({ error }) => {
|
|
112
|
+
if (error)
|
|
113
|
+
console.warn('[unisim/sdk] could not save user prefs', error);
|
|
114
|
+
});
|
|
115
|
+
}, [supabase, app, userId]);
|
|
116
|
+
const setPref = useCallback((key, value) => {
|
|
117
|
+
setPrefs((current) => {
|
|
118
|
+
const next = { ...current, [key]: value };
|
|
119
|
+
writeLocal(app, next);
|
|
120
|
+
persistRemote(next);
|
|
121
|
+
return next;
|
|
122
|
+
});
|
|
123
|
+
}, [app, persistRemote]);
|
|
124
|
+
const reset = useCallback(async () => {
|
|
125
|
+
setPrefs({});
|
|
126
|
+
try {
|
|
127
|
+
localStorage.removeItem(storageKey(app));
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
/* nothing to remove */
|
|
131
|
+
}
|
|
132
|
+
if (!userId)
|
|
133
|
+
return;
|
|
134
|
+
// ⚠️ Awaited, unlike setPref. "Reset defaults" is a deliberate action with a
|
|
135
|
+
// button behind it, so the caller is entitled to know it landed before it
|
|
136
|
+
// tells the user it did.
|
|
137
|
+
const { error } = await supabase.from(TABLE).delete().eq('app', app);
|
|
138
|
+
if (error)
|
|
139
|
+
console.warn('[unisim/sdk] could not clear user prefs', error);
|
|
140
|
+
}, [supabase, app, userId]);
|
|
141
|
+
const pref = useCallback((key, fallback) => (Object.prototype.hasOwnProperty.call(prefs, key) ? prefs[key] : fallback), [prefs]);
|
|
142
|
+
return useMemo(() => ({ prefs, pref, setPref, reset, loaded }), [prefs, pref, setPref, reset, loaded]);
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=userPrefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userPrefs.js","sourceRoot":"","sources":["../src/userPrefs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED