cursedbelt 5.17.0 → 5.18.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/react/components/CardDisplayControls.d.ts +37 -0
- package/dist/react/components/CardDisplayControls.d.ts.map +1 -0
- package/dist/react/components/CardDisplayControls.js +33 -0
- package/dist/react/components/CardDisplayControls.js.map +1 -0
- package/dist/react/hooks/useCardDisplay.d.ts +51 -0
- package/dist/react/hooks/useCardDisplay.d.ts.map +1 -0
- package/dist/react/hooks/useCardDisplay.js +106 -0
- package/dist/react/hooks/useCardDisplay.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/lib/cardDisplay.d.ts +25 -0
- package/dist/react/lib/cardDisplay.d.ts.map +1 -0
- package/dist/react/lib/cardDisplay.js +6 -0
- package/dist/react/lib/cardDisplay.js.map +1 -0
- package/package.json +1 -1
- package/scripts/styleAreas.ts +1 -0
- package/src/react/components/CardDisplayControls.spec.tsx +71 -0
- package/src/react/components/CardDisplayControls.tsx +120 -0
- package/src/react/hooks/useCardDisplay.spec.tsx +131 -0
- package/src/react/hooks/useCardDisplay.ts +142 -0
- package/src/react/index.ts +9 -0
- package/src/react/lib/cardDisplay.ts +29 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ControlSize } from '../lib/field.js';
|
|
3
|
+
import { type CardDisplay, type CardSize } from '../lib/cardDisplay.js';
|
|
4
|
+
export interface CardDisplayControlsProps {
|
|
5
|
+
value: CardDisplay;
|
|
6
|
+
onChange: (next: CardDisplay) => void;
|
|
7
|
+
/** Which sizes to offer, in order. Default {@link CARD_SIZES}. */
|
|
8
|
+
sizes?: readonly CardSize[];
|
|
9
|
+
/** What each segment says. Default `L` / `M` / `S`. */
|
|
10
|
+
sizeLabels?: Partial<Record<CardSize, ReactNode>>;
|
|
11
|
+
/** What the words under a card are called, lower-case — `"game titles"`. Default `"titles"`. */
|
|
12
|
+
captionsNoun?: string;
|
|
13
|
+
/** What the image is called, lower-case — `"art"`, `"posters"`. Default `"images"`. */
|
|
14
|
+
imageNoun?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Set when the size does not apply (a list view). The segments stay VISIBLE and inert with
|
|
17
|
+
* this on hover — one UI, never a hidden control.
|
|
18
|
+
*/
|
|
19
|
+
sizeDisabledReason?: string | null;
|
|
20
|
+
/** The same, for the captions toggle — `"Titles are always shown in the list view"`. */
|
|
21
|
+
captionsDisabledReason?: string | null;
|
|
22
|
+
/** Height on the shared control scale. Default `sm` — this sits in a toolbar. */
|
|
23
|
+
controlSize?: Extract<ControlSize, 'sm' | 'md'>;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The S / M / L switch and the captions toggle, side by side. The why, and the model it draws,
|
|
28
|
+
* are in `../lib/cardDisplay.ts`.
|
|
29
|
+
*
|
|
30
|
+
* Controlled: the app owns the state and where it is kept (`useCardDisplay` is the hook for
|
|
31
|
+
* that). The captions toggle is `aria-pressed` when the words are HIDDEN — pressing it is the act
|
|
32
|
+
* of hiding them, and its icon shows the card with or without its lines.
|
|
33
|
+
*
|
|
34
|
+
* Test hooks: `card-size-<size>` on each segment and `card-captions` on the toggle.
|
|
35
|
+
*/
|
|
36
|
+
export declare function CardDisplayControls({ value, onChange, sizes, sizeLabels, captionsNoun, imageNoun, sizeDisabledReason, captionsDisabledReason, controlSize, className, }: CardDisplayControlsProps): import("react").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=CardDisplayControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardDisplayControls.d.ts","sourceRoot":"","sources":["../../../src/react/components/CardDisplayControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMpF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,KAAkB,EAClB,UAAU,EACV,YAAuB,EACvB,SAAoB,EACpB,kBAAyB,EACzB,sBAA6B,EAC7B,WAAkB,EAClB,SAAS,GACV,EAAE,wBAAwB,+BA+D1B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../lib/cn.js';
|
|
3
|
+
import { IconButton } from './IconButton.js';
|
|
4
|
+
import { SegmentedControl } from './SegmentedControl.js';
|
|
5
|
+
import { Tooltip } from './Tooltip.js';
|
|
6
|
+
import { CARD_SIZES } from '../lib/cardDisplay.js';
|
|
7
|
+
const DEFAULT_SIZE_LABELS = { large: 'L', medium: 'M', small: 'S' };
|
|
8
|
+
const capitalized = (word) => `${word[0]?.toUpperCase() ?? ''}${word.slice(1)}`;
|
|
9
|
+
/**
|
|
10
|
+
* The S / M / L switch and the captions toggle, side by side. The why, and the model it draws,
|
|
11
|
+
* are in `../lib/cardDisplay.ts`.
|
|
12
|
+
*
|
|
13
|
+
* Controlled: the app owns the state and where it is kept (`useCardDisplay` is the hook for
|
|
14
|
+
* that). The captions toggle is `aria-pressed` when the words are HIDDEN — pressing it is the act
|
|
15
|
+
* of hiding them, and its icon shows the card with or without its lines.
|
|
16
|
+
*
|
|
17
|
+
* Test hooks: `card-size-<size>` on each segment and `card-captions` on the toggle.
|
|
18
|
+
*/
|
|
19
|
+
export function CardDisplayControls({ value, onChange, sizes = CARD_SIZES, sizeLabels, captionsNoun = 'titles', imageNoun = 'images', sizeDisabledReason = null, captionsDisabledReason = null, controlSize = 'sm', className, }) {
|
|
20
|
+
const labels = { ...DEFAULT_SIZE_LABELS, ...sizeLabels };
|
|
21
|
+
const { captions } = value;
|
|
22
|
+
const toggle = (_jsx(IconButton, { size: controlSize, variant: 'ghost', disabled: captionsDisabledReason !== null, onClick: () => onChange({ ...value, captions: !captions }), "aria-pressed": !captions, "data-testid": 'card-captions', label: captions
|
|
23
|
+
? `Hide ${captionsNoun} — show the ${imageNoun} only`
|
|
24
|
+
: `Show ${captionsNoun} under the ${imageNoun}`, tooltip: captions ? `${capitalized(imageNoun)} only — hide the ${captionsNoun}` : `Show the ${captionsNoun}`, children: _jsxs("svg", { viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 2, strokeLinecap: 'round', strokeLinejoin: 'round', "aria-hidden": 'true', children: [_jsx("rect", { x: '4', y: '3', width: '16', height: '12', rx: '1.5' }), captions ? (_jsxs(_Fragment, { children: [_jsx("line", { x1: '4', y1: '18.5', x2: '20', y2: '18.5' }), _jsx("line", { x1: '4', y1: '21.5', x2: '14', y2: '21.5' })] })) : null] }) }));
|
|
25
|
+
return (_jsxs("div", { className: cn('inline-flex items-center gap-1', className), "data-cb-card-display": '', children: [_jsx(SegmentedControl, { size: controlSize, "aria-label": 'Card size', value: value.size, onChange: (size) => onChange({ ...value, size }), options: sizes.map((size) => ({
|
|
26
|
+
value: size,
|
|
27
|
+
label: labels[size],
|
|
28
|
+
disabled: sizeDisabledReason !== null,
|
|
29
|
+
tooltip: sizeDisabledReason ?? `${capitalized(size)} cards`,
|
|
30
|
+
'data-testid': `card-size-${size}`,
|
|
31
|
+
})) }), captionsDisabledReason === null ? (toggle) : (_jsx(Tooltip, { content: captionsDisabledReason, children: _jsx("span", { className: 'inline-flex', children: toggle }) }))] }));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=CardDisplayControls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardDisplayControls.js","sourceRoot":"","sources":["../../../src/react/components/CardDisplayControls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type CardDisplay } from '../lib/cardDisplay.js';
|
|
2
|
+
export interface UseCardDisplayOptions {
|
|
3
|
+
/**
|
|
4
|
+
* What to draw on the first frame — a synchronous read (the device's `localStorage`) or the
|
|
5
|
+
* default. Read once. Default {@link DEFAULT_CARD_DISPLAY}.
|
|
6
|
+
*/
|
|
7
|
+
initial?: CardDisplay | (() => CardDisplay);
|
|
8
|
+
/**
|
|
9
|
+
* Keep the choice. Called with the SETTLED value after `debounceMs` of quiet, never for a value
|
|
10
|
+
* equal to the last one kept or loaded — so flipping a toggle and back costs nothing. `keepalive`
|
|
11
|
+
* is true when the page is going away, for a `fetch(…, { keepalive })`. A rejected save is
|
|
12
|
+
* retried with the next change.
|
|
13
|
+
*/
|
|
14
|
+
save: (display: CardDisplay, options: {
|
|
15
|
+
keepalive: boolean;
|
|
16
|
+
}) => void | Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* A stored choice to adopt once — the server's, which follows the person to every device.
|
|
19
|
+
* 🔴 A change made while this is in flight WINS: the stored value is older than the hand.
|
|
20
|
+
* A rejection or `null` keeps what is drawn.
|
|
21
|
+
*/
|
|
22
|
+
load?: () => Promise<Partial<CardDisplay> | null>;
|
|
23
|
+
/** Off until the session is known — a signed-out read is a wasted 401. Default true. */
|
|
24
|
+
enabled?: boolean;
|
|
25
|
+
/** How long the choice must hold still before it is kept. Default 800 ms. */
|
|
26
|
+
debounceMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface UseCardDisplayResult {
|
|
29
|
+
value: CardDisplay;
|
|
30
|
+
/** Draw it now; keep it once it settles. */
|
|
31
|
+
setValue: (next: CardDisplay) => void;
|
|
32
|
+
/** False until `load` has answered (true at once without one). */
|
|
33
|
+
ready: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The state behind {@link CardDisplayControls}, and where it is kept — debounced.
|
|
37
|
+
*
|
|
38
|
+
* Owner, flix, 2026-09-28: *"persist the setting to the db, with a slight debounce in case the
|
|
39
|
+
* user is toggling them just to test them and hasn't settled on one yet."* So a burst of taps is
|
|
40
|
+
* ONE save carrying the last value, and a burst that ends where it started is none.
|
|
41
|
+
*
|
|
42
|
+
* Where the value lives is the app's: flix keeps it per account on its server, roms per device
|
|
43
|
+
* in `localStorage`. Both are the same two callbacks.
|
|
44
|
+
*
|
|
45
|
+
* ```tsx
|
|
46
|
+
* const cards = useCardDisplay({ initial: readLocal, load: api.loadCards, save: api.saveCards });
|
|
47
|
+
* <CardDisplayControls value={cards.value} onChange={cards.setValue} captionsNoun='titles' />
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function useCardDisplay(options: UseCardDisplayOptions): UseCardDisplayResult;
|
|
51
|
+
//# sourceMappingURL=useCardDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCardDisplay.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCardDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAoC,MAAM,uBAAuB,CAAC;AAE3F,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;CAChB;AAUD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAkFnF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { DEFAULT_CARD_DISPLAY, isCardSize } from '../lib/cardDisplay.js';
|
|
3
|
+
const same = (a, b) => a.size === b.size && a.captions === b.captions;
|
|
4
|
+
/** A partial stored value laid over what is drawn; anything malformed is ignored, field by field. */
|
|
5
|
+
const merged = (base, stored) => ({
|
|
6
|
+
size: isCardSize(stored.size) ? stored.size : base.size,
|
|
7
|
+
captions: typeof stored.captions === 'boolean' ? stored.captions : base.captions,
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* The state behind {@link CardDisplayControls}, and where it is kept — debounced.
|
|
11
|
+
*
|
|
12
|
+
* Owner, flix, 2026-09-28: *"persist the setting to the db, with a slight debounce in case the
|
|
13
|
+
* user is toggling them just to test them and hasn't settled on one yet."* So a burst of taps is
|
|
14
|
+
* ONE save carrying the last value, and a burst that ends where it started is none.
|
|
15
|
+
*
|
|
16
|
+
* Where the value lives is the app's: flix keeps it per account on its server, roms per device
|
|
17
|
+
* in `localStorage`. Both are the same two callbacks.
|
|
18
|
+
*
|
|
19
|
+
* ```tsx
|
|
20
|
+
* const cards = useCardDisplay({ initial: readLocal, load: api.loadCards, save: api.saveCards });
|
|
21
|
+
* <CardDisplayControls value={cards.value} onChange={cards.setValue} captionsNoun='titles' />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function useCardDisplay(options) {
|
|
25
|
+
const { enabled = true, debounceMs = 800 } = options;
|
|
26
|
+
const [value, setState] = useState(() => {
|
|
27
|
+
const initial = options.initial ?? DEFAULT_CARD_DISPLAY;
|
|
28
|
+
return typeof initial === 'function' ? initial() : initial;
|
|
29
|
+
});
|
|
30
|
+
const [ready, setReady] = useState(!(enabled && options.load));
|
|
31
|
+
// The callbacks are read through a ref so an inline arrow at the call site does not restart
|
|
32
|
+
// the load or drop a pending save on every render.
|
|
33
|
+
const callbacks = useRef(options);
|
|
34
|
+
callbacks.current = options;
|
|
35
|
+
const kept = useRef(value);
|
|
36
|
+
const pending = useRef(null);
|
|
37
|
+
const touched = useRef(false);
|
|
38
|
+
const timer = useRef(null);
|
|
39
|
+
const flush = useCallback((keepalive) => {
|
|
40
|
+
if (timer.current)
|
|
41
|
+
clearTimeout(timer.current);
|
|
42
|
+
timer.current = null;
|
|
43
|
+
const next = pending.current;
|
|
44
|
+
pending.current = null;
|
|
45
|
+
if (!next || same(next, kept.current))
|
|
46
|
+
return;
|
|
47
|
+
const previous = kept.current;
|
|
48
|
+
kept.current = next;
|
|
49
|
+
const forget = () => {
|
|
50
|
+
// Not kept after all: the next change (or this one again) must be sent.
|
|
51
|
+
if (kept.current === next)
|
|
52
|
+
kept.current = previous;
|
|
53
|
+
};
|
|
54
|
+
try {
|
|
55
|
+
void Promise.resolve(callbacks.current.save(next, { keepalive })).catch(forget);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
forget();
|
|
59
|
+
}
|
|
60
|
+
}, []);
|
|
61
|
+
const setValue = useCallback((next) => {
|
|
62
|
+
touched.current = true;
|
|
63
|
+
setState(next);
|
|
64
|
+
pending.current = next;
|
|
65
|
+
if (timer.current)
|
|
66
|
+
clearTimeout(timer.current);
|
|
67
|
+
timer.current = setTimeout(() => flush(false), debounceMs);
|
|
68
|
+
}, [debounceMs, flush]);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
const load = callbacks.current.load;
|
|
71
|
+
if (!enabled || !load)
|
|
72
|
+
return;
|
|
73
|
+
let live = true;
|
|
74
|
+
load()
|
|
75
|
+
.then((stored) => {
|
|
76
|
+
if (!live || !stored || touched.current)
|
|
77
|
+
return;
|
|
78
|
+
setState((drawn) => {
|
|
79
|
+
const next = merged(drawn, stored);
|
|
80
|
+
kept.current = next;
|
|
81
|
+
return next;
|
|
82
|
+
});
|
|
83
|
+
})
|
|
84
|
+
.catch(() => {
|
|
85
|
+
// A choice that cannot be read is the one already drawn.
|
|
86
|
+
})
|
|
87
|
+
.finally(() => {
|
|
88
|
+
if (live)
|
|
89
|
+
setReady(true);
|
|
90
|
+
});
|
|
91
|
+
return () => {
|
|
92
|
+
live = false;
|
|
93
|
+
};
|
|
94
|
+
}, [enabled]);
|
|
95
|
+
// A tap in the last `debounceMs` before the tab closes or the view unmounts is still kept.
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
const onHide = () => flush(true);
|
|
98
|
+
globalThis.addEventListener?.('pagehide', onHide);
|
|
99
|
+
return () => {
|
|
100
|
+
globalThis.removeEventListener?.('pagehide', onHide);
|
|
101
|
+
flush(true);
|
|
102
|
+
};
|
|
103
|
+
}, [flush]);
|
|
104
|
+
return { value, setValue, ready };
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=useCardDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCardDisplay.js","sourceRoot":"","sources":["../../../src/react/hooks/useCardDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export { Badge, type BadgeProps, type BadgeTone } from './components/Badge.js';
|
|
|
39
39
|
export { ChartTablePanel, type ChartTablePanelProps, type ChartTableView, } from './components/ChartTablePanel.js';
|
|
40
40
|
export * from './companion-link/index.js';
|
|
41
41
|
export { CardTapTarget, type CardTapTargetProps } from './components/CardTapTarget.js';
|
|
42
|
+
export { CardDisplayControls, type CardDisplayControlsProps } from './components/CardDisplayControls.js';
|
|
43
|
+
export { CARD_SIZES, type CardDisplay, type CardSize, DEFAULT_CARD_DISPLAY, isCardSize, } from './lib/cardDisplay.js';
|
|
42
44
|
export { hasSelectionWithin } from './lib/textSelection.js';
|
|
43
45
|
export { ProblemDetailView, type ProblemDetailViewProps, type ProblemExplainView, type ProblemBlockingView, type ProblemGateView, type ProblemReadyTaskView, type ProblemEventView, type ProblemSessionView, type ProblemTriageView, } from './problem-detail/ProblemDetailView.js';
|
|
44
46
|
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, buttonVariants, } from './components/Button.js';
|
|
@@ -182,6 +184,7 @@ export { type UseCopyToClipboard, useCopyToClipboard } from './hooks/useCopyToCl
|
|
|
182
184
|
export { type BoardOver, type CrossContainerContainerApi, type CrossContainerDragOptions, type CrossContainerDragResult, computeBoardMove, computeNetMove, findContainerOf, positionAtIndex, useCrossContainerDrag, } from './hooks/useCrossContainerDrag.js';
|
|
183
185
|
export { useDebouncedCallback } from './hooks/useDebouncedCallback.js';
|
|
184
186
|
export { useDebouncedValue } from './hooks/useDebouncedValue.js';
|
|
187
|
+
export { type UseCardDisplayOptions, type UseCardDisplayResult, useCardDisplay } from './hooks/useCardDisplay.js';
|
|
185
188
|
export { type UseDiscardGuardOptions, type UseDiscardGuardResult, useDiscardGuard, } from './hooks/useDiscardGuard.js';
|
|
186
189
|
export { type FormValues, jsonEqual, readFormValues, type UseDirtyFormOptions, type UseDirtyFormResult, useDirtyForm, } from './hooks/useDirtyForm.js';
|
|
187
190
|
export { useDismissibleItems } from './hooks/useDismissibleItems.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js
CHANGED
|
@@ -44,6 +44,8 @@ export { Badge } from './components/Badge.js';
|
|
|
44
44
|
export { ChartTablePanel, } from './components/ChartTablePanel.js';
|
|
45
45
|
export * from './companion-link/index.js';
|
|
46
46
|
export { CardTapTarget } from './components/CardTapTarget.js';
|
|
47
|
+
export { CardDisplayControls } from './components/CardDisplayControls.js';
|
|
48
|
+
export { CARD_SIZES, DEFAULT_CARD_DISPLAY, isCardSize, } from './lib/cardDisplay.js';
|
|
47
49
|
export { hasSelectionWithin } from './lib/textSelection.js';
|
|
48
50
|
export { ProblemDetailView, } from './problem-detail/ProblemDetailView.js';
|
|
49
51
|
export { Button, buttonVariants, } from './components/Button.js';
|
|
@@ -195,6 +197,7 @@ export { useCopyToClipboard } from './hooks/useCopyToClipboard.js';
|
|
|
195
197
|
export { computeBoardMove, computeNetMove, findContainerOf, positionAtIndex, useCrossContainerDrag, } from './hooks/useCrossContainerDrag.js';
|
|
196
198
|
export { useDebouncedCallback } from './hooks/useDebouncedCallback.js';
|
|
197
199
|
export { useDebouncedValue } from './hooks/useDebouncedValue.js';
|
|
200
|
+
export { useCardDisplay } from './hooks/useCardDisplay.js';
|
|
198
201
|
export { useDiscardGuard, } from './hooks/useDiscardGuard.js';
|
|
199
202
|
export { jsonEqual, readFormValues, useDirtyForm, } from './hooks/useDirtyForm.js';
|
|
200
203
|
export { useDismissibleItems } from './hooks/useDismissibleItems.js';
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a card grid is drawn: how big each card is, and whether the words under the image show.
|
|
3
|
+
*
|
|
4
|
+
* Owner, roms, 2026-09-27: *"Smaller cards could be half that size and maybe a quarter … so the
|
|
5
|
+
* user can scroll faster and see more cards at once"*, and *"a toggle to hide the game info so
|
|
6
|
+
* only the game image is visible"*. Then flix asked for the same pair (2026-09-28), which is why
|
|
7
|
+
* it lives here: two grids with their own copy of an S/M/L switch and a titles toggle drift the
|
|
8
|
+
* first time one of them changes a label or a hit target.
|
|
9
|
+
*
|
|
10
|
+
* 🔴 The SIZE is a word, not a width. What `small` means in pixels is the app's — roms draws box
|
|
11
|
+
* art at 10/7/5 rem, flix draws 2:3 posters — so this names the choice and each grid maps it onto
|
|
12
|
+
* its own column width. A number here would be one app's layout leaking into the other's.
|
|
13
|
+
*/
|
|
14
|
+
export type CardSize = 'large' | 'medium' | 'small';
|
|
15
|
+
/** Largest first — the order the switch reads left to right. */
|
|
16
|
+
export declare const CARD_SIZES: readonly CardSize[];
|
|
17
|
+
export declare const isCardSize: (value: unknown) => value is CardSize;
|
|
18
|
+
/** The whole choice. `captions` is whether the words under each image are drawn. */
|
|
19
|
+
export interface CardDisplay {
|
|
20
|
+
size: CardSize;
|
|
21
|
+
captions: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Large cards with their words — what a grid looks like before anyone has chosen. */
|
|
24
|
+
export declare const DEFAULT_CARD_DISPLAY: CardDisplay;
|
|
25
|
+
//# sourceMappingURL=cardDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardDisplay.d.ts","sourceRoot":"","sources":["../../../src/react/lib/cardDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAAiC,CAAC;AAE5E,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QACS,CAAC;AAE/D,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,EAAE,WAA+C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Largest first — the order the switch reads left to right. */
|
|
2
|
+
export const CARD_SIZES = ['large', 'medium', 'small'];
|
|
3
|
+
export const isCardSize = (value) => value === 'large' || value === 'medium' || value === 'small';
|
|
4
|
+
/** Large cards with their words — what a grid looks like before anyone has chosen. */
|
|
5
|
+
export const DEFAULT_CARD_DISPLAY = { size: 'large', captions: true };
|
|
6
|
+
//# sourceMappingURL=cardDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardDisplay.js","sourceRoot":"","sources":["../../../src/react/lib/cardDisplay.ts"],"names":[],"mappings":"AAeA,gEAAgE;AAChE,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAqB,EAAE,CAC9D,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC;AAQ/D,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cursedbelt",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.18.0",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "The React design system of the cursedbelt split — components, styles, theme. cursedbelt-core below it; server tier in cursedbelt-server.",
|
package/scripts/styleAreas.ts
CHANGED
|
@@ -150,6 +150,7 @@ export const AREAS: readonly Area[] = [
|
|
|
150
150
|
'components/Button.tsx',
|
|
151
151
|
'components/ButtonGroup.tsx',
|
|
152
152
|
'components/ButtonLink.tsx',
|
|
153
|
+
'components/CardDisplayControls.tsx',
|
|
153
154
|
'components/CardTapTarget.tsx',
|
|
154
155
|
'components/Checkbox.tsx',
|
|
155
156
|
'components/ChoiceGroup.tsx',
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { afterEach, describe, expect, mock, test } from 'bun:test';
|
|
2
|
+
import { cleanup, fireEvent, render } from '@testing-library/react';
|
|
3
|
+
import type { CardDisplay } from '../lib/cardDisplay.js';
|
|
4
|
+
import { CardDisplayControls } from './CardDisplayControls.js';
|
|
5
|
+
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
|
|
8
|
+
const LARGE_WITH_WORDS: CardDisplay = { size: 'large', captions: true };
|
|
9
|
+
|
|
10
|
+
describe('CardDisplayControls', () => {
|
|
11
|
+
test('a size segment reports the size, keeping the captions choice', () => {
|
|
12
|
+
const onChange = mock((_: CardDisplay) => {});
|
|
13
|
+
const { getByTestId } = render(
|
|
14
|
+
<CardDisplayControls value={{ size: 'large', captions: false }} onChange={onChange} />,
|
|
15
|
+
);
|
|
16
|
+
// Radix Tabs activates on mousedown, not click.
|
|
17
|
+
fireEvent.mouseDown(getByTestId('card-size-small'), { button: 0 });
|
|
18
|
+
expect(onChange).toHaveBeenLastCalledWith({ size: 'small', captions: false });
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('the captions toggle flips the words and keeps the size, pressed when they are hidden', () => {
|
|
22
|
+
const onChange = mock((_: CardDisplay) => {});
|
|
23
|
+
const { getByTestId, rerender } = render(
|
|
24
|
+
<CardDisplayControls value={{ size: 'medium', captions: true }} onChange={onChange} captionsNoun='film titles' imageNoun='posters' />,
|
|
25
|
+
);
|
|
26
|
+
const toggle = getByTestId('card-captions');
|
|
27
|
+
expect(toggle.getAttribute('aria-pressed')).toBe('false');
|
|
28
|
+
expect(toggle.getAttribute('aria-label')).toBe('Hide film titles — show the posters only');
|
|
29
|
+
fireEvent.click(toggle);
|
|
30
|
+
expect(onChange).toHaveBeenLastCalledWith({ size: 'medium', captions: false });
|
|
31
|
+
|
|
32
|
+
rerender(
|
|
33
|
+
<CardDisplayControls value={{ size: 'medium', captions: false }} onChange={onChange} captionsNoun='film titles' imageNoun='posters' />,
|
|
34
|
+
);
|
|
35
|
+
expect(getByTestId('card-captions').getAttribute('aria-pressed')).toBe('true');
|
|
36
|
+
expect(getByTestId('card-captions').getAttribute('aria-label')).toBe('Show film titles under the posters');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('offers only the sizes asked for, with the labels asked for', () => {
|
|
40
|
+
const { queryByTestId, getByTestId } = render(
|
|
41
|
+
<CardDisplayControls
|
|
42
|
+
value={LARGE_WITH_WORDS}
|
|
43
|
+
onChange={() => {}}
|
|
44
|
+
sizes={['large', 'small']}
|
|
45
|
+
sizeLabels={{ small: 'Tiny' }}
|
|
46
|
+
/>,
|
|
47
|
+
);
|
|
48
|
+
expect(queryByTestId('card-size-medium')).toBeNull();
|
|
49
|
+
expect(getByTestId('card-size-large').textContent).toBe('L');
|
|
50
|
+
expect(getByTestId('card-size-small').textContent).toBe('Tiny');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('a disabled reason leaves both controls visible and inert', () => {
|
|
54
|
+
const onChange = mock((_: CardDisplay) => {});
|
|
55
|
+
const { getByTestId } = render(
|
|
56
|
+
<CardDisplayControls
|
|
57
|
+
value={LARGE_WITH_WORDS}
|
|
58
|
+
onChange={onChange}
|
|
59
|
+
sizeDisabledReason='Card size applies to the grid view'
|
|
60
|
+
captionsDisabledReason='Titles are always shown in the list view'
|
|
61
|
+
/>,
|
|
62
|
+
);
|
|
63
|
+
const small = getByTestId('card-size-small') as HTMLButtonElement;
|
|
64
|
+
const toggle = getByTestId('card-captions') as HTMLButtonElement;
|
|
65
|
+
expect(small.disabled).toBe(true);
|
|
66
|
+
expect(toggle.disabled).toBe(true);
|
|
67
|
+
fireEvent.mouseDown(small, { button: 0 });
|
|
68
|
+
fireEvent.click(toggle);
|
|
69
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { cn } from '../lib/cn.js';
|
|
3
|
+
import type { ControlSize } from '../lib/field.js';
|
|
4
|
+
import { IconButton } from './IconButton.js';
|
|
5
|
+
import { SegmentedControl } from './SegmentedControl.js';
|
|
6
|
+
import { Tooltip } from './Tooltip.js';
|
|
7
|
+
import { CARD_SIZES, type CardDisplay, type CardSize } from '../lib/cardDisplay.js';
|
|
8
|
+
|
|
9
|
+
const DEFAULT_SIZE_LABELS: Readonly<Record<CardSize, ReactNode>> = { large: 'L', medium: 'M', small: 'S' };
|
|
10
|
+
|
|
11
|
+
const capitalized = (word: string): string => `${word[0]?.toUpperCase() ?? ''}${word.slice(1)}`;
|
|
12
|
+
|
|
13
|
+
export interface CardDisplayControlsProps {
|
|
14
|
+
value: CardDisplay;
|
|
15
|
+
onChange: (next: CardDisplay) => void;
|
|
16
|
+
/** Which sizes to offer, in order. Default {@link CARD_SIZES}. */
|
|
17
|
+
sizes?: readonly CardSize[];
|
|
18
|
+
/** What each segment says. Default `L` / `M` / `S`. */
|
|
19
|
+
sizeLabels?: Partial<Record<CardSize, ReactNode>>;
|
|
20
|
+
/** What the words under a card are called, lower-case — `"game titles"`. Default `"titles"`. */
|
|
21
|
+
captionsNoun?: string;
|
|
22
|
+
/** What the image is called, lower-case — `"art"`, `"posters"`. Default `"images"`. */
|
|
23
|
+
imageNoun?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Set when the size does not apply (a list view). The segments stay VISIBLE and inert with
|
|
26
|
+
* this on hover — one UI, never a hidden control.
|
|
27
|
+
*/
|
|
28
|
+
sizeDisabledReason?: string | null;
|
|
29
|
+
/** The same, for the captions toggle — `"Titles are always shown in the list view"`. */
|
|
30
|
+
captionsDisabledReason?: string | null;
|
|
31
|
+
/** Height on the shared control scale. Default `sm` — this sits in a toolbar. */
|
|
32
|
+
controlSize?: Extract<ControlSize, 'sm' | 'md'>;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The S / M / L switch and the captions toggle, side by side. The why, and the model it draws,
|
|
38
|
+
* are in `../lib/cardDisplay.ts`.
|
|
39
|
+
*
|
|
40
|
+
* Controlled: the app owns the state and where it is kept (`useCardDisplay` is the hook for
|
|
41
|
+
* that). The captions toggle is `aria-pressed` when the words are HIDDEN — pressing it is the act
|
|
42
|
+
* of hiding them, and its icon shows the card with or without its lines.
|
|
43
|
+
*
|
|
44
|
+
* Test hooks: `card-size-<size>` on each segment and `card-captions` on the toggle.
|
|
45
|
+
*/
|
|
46
|
+
export function CardDisplayControls({
|
|
47
|
+
value,
|
|
48
|
+
onChange,
|
|
49
|
+
sizes = CARD_SIZES,
|
|
50
|
+
sizeLabels,
|
|
51
|
+
captionsNoun = 'titles',
|
|
52
|
+
imageNoun = 'images',
|
|
53
|
+
sizeDisabledReason = null,
|
|
54
|
+
captionsDisabledReason = null,
|
|
55
|
+
controlSize = 'sm',
|
|
56
|
+
className,
|
|
57
|
+
}: CardDisplayControlsProps) {
|
|
58
|
+
const labels = { ...DEFAULT_SIZE_LABELS, ...sizeLabels };
|
|
59
|
+
const { captions } = value;
|
|
60
|
+
const toggle = (
|
|
61
|
+
<IconButton
|
|
62
|
+
size={controlSize}
|
|
63
|
+
variant='ghost'
|
|
64
|
+
disabled={captionsDisabledReason !== null}
|
|
65
|
+
onClick={() => onChange({ ...value, captions: !captions })}
|
|
66
|
+
aria-pressed={!captions}
|
|
67
|
+
data-testid='card-captions'
|
|
68
|
+
label={
|
|
69
|
+
captions
|
|
70
|
+
? `Hide ${captionsNoun} — show the ${imageNoun} only`
|
|
71
|
+
: `Show ${captionsNoun} under the ${imageNoun}`
|
|
72
|
+
}
|
|
73
|
+
tooltip={captions ? `${capitalized(imageNoun)} only — hide the ${captionsNoun}` : `Show the ${captionsNoun}`}
|
|
74
|
+
>
|
|
75
|
+
<svg
|
|
76
|
+
viewBox='0 0 24 24'
|
|
77
|
+
fill='none'
|
|
78
|
+
stroke='currentColor'
|
|
79
|
+
strokeWidth={2}
|
|
80
|
+
strokeLinecap='round'
|
|
81
|
+
strokeLinejoin='round'
|
|
82
|
+
aria-hidden='true'
|
|
83
|
+
>
|
|
84
|
+
<rect x='4' y='3' width='16' height='12' rx='1.5' />
|
|
85
|
+
{captions ? (
|
|
86
|
+
<>
|
|
87
|
+
<line x1='4' y1='18.5' x2='20' y2='18.5' />
|
|
88
|
+
<line x1='4' y1='21.5' x2='14' y2='21.5' />
|
|
89
|
+
</>
|
|
90
|
+
) : null}
|
|
91
|
+
</svg>
|
|
92
|
+
</IconButton>
|
|
93
|
+
);
|
|
94
|
+
return (
|
|
95
|
+
<div className={cn('inline-flex items-center gap-1', className)} data-cb-card-display=''>
|
|
96
|
+
<SegmentedControl<CardSize>
|
|
97
|
+
size={controlSize}
|
|
98
|
+
aria-label='Card size'
|
|
99
|
+
value={value.size}
|
|
100
|
+
onChange={(size) => onChange({ ...value, size })}
|
|
101
|
+
options={sizes.map((size) => ({
|
|
102
|
+
value: size,
|
|
103
|
+
label: labels[size],
|
|
104
|
+
disabled: sizeDisabledReason !== null,
|
|
105
|
+
tooltip: sizeDisabledReason ?? `${capitalized(size)} cards`,
|
|
106
|
+
'data-testid': `card-size-${size}`,
|
|
107
|
+
}))}
|
|
108
|
+
/>
|
|
109
|
+
{captionsDisabledReason === null ? (
|
|
110
|
+
toggle
|
|
111
|
+
) : (
|
|
112
|
+
// A disabled button takes no pointer events, so its own tooltip can never open —
|
|
113
|
+
// the span carries the reason instead (SegmentedControl does the same per segment).
|
|
114
|
+
<Tooltip content={captionsDisabledReason}>
|
|
115
|
+
<span className='inline-flex'>{toggle}</span>
|
|
116
|
+
</Tooltip>
|
|
117
|
+
)}
|
|
118
|
+
</div>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { afterEach, describe, expect, mock, test } from 'bun:test';
|
|
2
|
+
import { act, cleanup, renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import type { CardDisplay } from '../lib/cardDisplay.js';
|
|
4
|
+
import { useCardDisplay } from './useCardDisplay.js';
|
|
5
|
+
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
|
|
8
|
+
const WAIT = 20;
|
|
9
|
+
const settle = () => new Promise((resolve) => setTimeout(resolve, WAIT * 3));
|
|
10
|
+
|
|
11
|
+
type Save = (display: CardDisplay, options: { keepalive: boolean }) => void | Promise<void>;
|
|
12
|
+
const saver = (impl?: Save) => mock<Save>(impl ?? (() => {}));
|
|
13
|
+
|
|
14
|
+
describe('useCardDisplay', () => {
|
|
15
|
+
test('starts from `initial`, or large cards with their words', () => {
|
|
16
|
+
expect(renderHook(() => useCardDisplay({ save: () => {} })).result.current.value).toEqual({
|
|
17
|
+
size: 'large',
|
|
18
|
+
captions: true,
|
|
19
|
+
});
|
|
20
|
+
const { result } = renderHook(() =>
|
|
21
|
+
useCardDisplay({ save: () => {}, initial: () => ({ size: 'small', captions: false }) }),
|
|
22
|
+
);
|
|
23
|
+
expect(result.current.value).toEqual({ size: 'small', captions: false });
|
|
24
|
+
expect(result.current.ready).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('draws a change at once and keeps only the SETTLED value of a burst, once', async () => {
|
|
28
|
+
const save = saver();
|
|
29
|
+
const { result } = renderHook(() => useCardDisplay({ save, debounceMs: WAIT }));
|
|
30
|
+
act(() => result.current.setValue({ size: 'medium', captions: true }));
|
|
31
|
+
act(() => result.current.setValue({ size: 'small', captions: true }));
|
|
32
|
+
act(() => result.current.setValue({ size: 'small', captions: false }));
|
|
33
|
+
expect(result.current.value).toEqual({ size: 'small', captions: false });
|
|
34
|
+
expect(save).not.toHaveBeenCalled();
|
|
35
|
+
await settle();
|
|
36
|
+
expect(save).toHaveBeenCalledTimes(1);
|
|
37
|
+
expect(save).toHaveBeenLastCalledWith({ size: 'small', captions: false }, { keepalive: false });
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('a burst that ends where it started saves nothing', async () => {
|
|
41
|
+
const save = saver();
|
|
42
|
+
const { result } = renderHook(() => useCardDisplay({ save, debounceMs: WAIT }));
|
|
43
|
+
act(() => result.current.setValue({ size: 'large', captions: false }));
|
|
44
|
+
act(() => result.current.setValue({ size: 'large', captions: true }));
|
|
45
|
+
await settle();
|
|
46
|
+
expect(save).not.toHaveBeenCalled();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('adopts the stored choice, and a stored equal value is not written back', async () => {
|
|
50
|
+
const save = saver();
|
|
51
|
+
const { result } = renderHook(() =>
|
|
52
|
+
useCardDisplay({ save, debounceMs: WAIT, load: async () => ({ size: 'medium', captions: false }) }),
|
|
53
|
+
);
|
|
54
|
+
expect(result.current.ready).toBe(false);
|
|
55
|
+
await waitFor(() => expect(result.current.ready).toBe(true));
|
|
56
|
+
expect(result.current.value).toEqual({ size: 'medium', captions: false });
|
|
57
|
+
act(() => result.current.setValue({ size: 'small', captions: false }));
|
|
58
|
+
act(() => result.current.setValue({ size: 'medium', captions: false }));
|
|
59
|
+
await settle();
|
|
60
|
+
expect(save).not.toHaveBeenCalled();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('🔴 a tap made while the stored choice is in flight wins over it', async () => {
|
|
64
|
+
let answer: (value: Partial<CardDisplay>) => void = () => {};
|
|
65
|
+
const save = saver();
|
|
66
|
+
const { result } = renderHook(() =>
|
|
67
|
+
useCardDisplay({
|
|
68
|
+
save,
|
|
69
|
+
debounceMs: WAIT,
|
|
70
|
+
load: () => new Promise<Partial<CardDisplay>>((resolve) => (answer = resolve)),
|
|
71
|
+
}),
|
|
72
|
+
);
|
|
73
|
+
act(() => result.current.setValue({ size: 'small', captions: true }));
|
|
74
|
+
await act(async () => answer({ size: 'medium', captions: false }));
|
|
75
|
+
await waitFor(() => expect(result.current.ready).toBe(true));
|
|
76
|
+
expect(result.current.value).toEqual({ size: 'small', captions: true });
|
|
77
|
+
await settle();
|
|
78
|
+
expect(save).toHaveBeenLastCalledWith({ size: 'small', captions: true }, { keepalive: false });
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test('a malformed stored value is ignored field by field; a failed read keeps what is drawn', async () => {
|
|
82
|
+
const { result } = renderHook(() =>
|
|
83
|
+
useCardDisplay({ save: () => {}, load: async () => ({ size: 'huge' as never, captions: false }) }),
|
|
84
|
+
);
|
|
85
|
+
await waitFor(() => expect(result.current.value).toEqual({ size: 'large', captions: false }));
|
|
86
|
+
|
|
87
|
+
const failed = renderHook(() =>
|
|
88
|
+
useCardDisplay({ save: () => {}, load: () => Promise.reject(new Error('500')) }),
|
|
89
|
+
);
|
|
90
|
+
await waitFor(() => expect(failed.result.current.ready).toBe(true));
|
|
91
|
+
expect(failed.result.current.value).toEqual({ size: 'large', captions: true });
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test('does not read until enabled', async () => {
|
|
95
|
+
const load = mock(async () => ({ size: 'small' as const }));
|
|
96
|
+
const { result, rerender } = renderHook(({ on }) => useCardDisplay({ save: () => {}, load, enabled: on }), {
|
|
97
|
+
initialProps: { on: false },
|
|
98
|
+
});
|
|
99
|
+
expect(result.current.ready).toBe(true);
|
|
100
|
+
expect(load).not.toHaveBeenCalled();
|
|
101
|
+
rerender({ on: true });
|
|
102
|
+
await waitFor(() => expect(result.current.value.size).toBe('small'));
|
|
103
|
+
expect(load).toHaveBeenCalledTimes(1);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test('🔴 a rejected save is not counted as kept — the same value goes again', async () => {
|
|
107
|
+
let fail = true;
|
|
108
|
+
const save = saver(() => (fail ? Promise.reject(new Error('offline')) : undefined));
|
|
109
|
+
const { result } = renderHook(() => useCardDisplay({ save, debounceMs: WAIT }));
|
|
110
|
+
act(() => result.current.setValue({ size: 'small', captions: true }));
|
|
111
|
+
await settle();
|
|
112
|
+
expect(save).toHaveBeenCalledTimes(1);
|
|
113
|
+
fail = false;
|
|
114
|
+
act(() => result.current.setValue({ size: 'small', captions: true }));
|
|
115
|
+
await settle();
|
|
116
|
+
expect(save).toHaveBeenCalledTimes(2);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test('a change still pending when the page hides or the view unmounts is kept, with keepalive', async () => {
|
|
120
|
+
const save = saver();
|
|
121
|
+
const { result, unmount } = renderHook(() => useCardDisplay({ save, debounceMs: 10_000 }));
|
|
122
|
+
act(() => result.current.setValue({ size: 'medium', captions: true }));
|
|
123
|
+
globalThis.dispatchEvent(new Event('pagehide'));
|
|
124
|
+
expect(save).toHaveBeenLastCalledWith({ size: 'medium', captions: true }, { keepalive: true });
|
|
125
|
+
|
|
126
|
+
act(() => result.current.setValue({ size: 'small', captions: true }));
|
|
127
|
+
unmount();
|
|
128
|
+
expect(save).toHaveBeenLastCalledWith({ size: 'small', captions: true }, { keepalive: true });
|
|
129
|
+
expect(save).toHaveBeenCalledTimes(2);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { type CardDisplay, DEFAULT_CARD_DISPLAY, isCardSize } from '../lib/cardDisplay.js';
|
|
3
|
+
|
|
4
|
+
export interface UseCardDisplayOptions {
|
|
5
|
+
/**
|
|
6
|
+
* What to draw on the first frame — a synchronous read (the device's `localStorage`) or the
|
|
7
|
+
* default. Read once. Default {@link DEFAULT_CARD_DISPLAY}.
|
|
8
|
+
*/
|
|
9
|
+
initial?: CardDisplay | (() => CardDisplay);
|
|
10
|
+
/**
|
|
11
|
+
* Keep the choice. Called with the SETTLED value after `debounceMs` of quiet, never for a value
|
|
12
|
+
* equal to the last one kept or loaded — so flipping a toggle and back costs nothing. `keepalive`
|
|
13
|
+
* is true when the page is going away, for a `fetch(…, { keepalive })`. A rejected save is
|
|
14
|
+
* retried with the next change.
|
|
15
|
+
*/
|
|
16
|
+
save: (display: CardDisplay, options: { keepalive: boolean }) => void | Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* A stored choice to adopt once — the server's, which follows the person to every device.
|
|
19
|
+
* 🔴 A change made while this is in flight WINS: the stored value is older than the hand.
|
|
20
|
+
* A rejection or `null` keeps what is drawn.
|
|
21
|
+
*/
|
|
22
|
+
load?: () => Promise<Partial<CardDisplay> | null>;
|
|
23
|
+
/** Off until the session is known — a signed-out read is a wasted 401. Default true. */
|
|
24
|
+
enabled?: boolean;
|
|
25
|
+
/** How long the choice must hold still before it is kept. Default 800 ms. */
|
|
26
|
+
debounceMs?: number;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface UseCardDisplayResult {
|
|
30
|
+
value: CardDisplay;
|
|
31
|
+
/** Draw it now; keep it once it settles. */
|
|
32
|
+
setValue: (next: CardDisplay) => void;
|
|
33
|
+
/** False until `load` has answered (true at once without one). */
|
|
34
|
+
ready: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const same = (a: CardDisplay, b: CardDisplay): boolean => a.size === b.size && a.captions === b.captions;
|
|
38
|
+
|
|
39
|
+
/** A partial stored value laid over what is drawn; anything malformed is ignored, field by field. */
|
|
40
|
+
const merged = (base: CardDisplay, stored: Partial<CardDisplay>): CardDisplay => ({
|
|
41
|
+
size: isCardSize(stored.size) ? stored.size : base.size,
|
|
42
|
+
captions: typeof stored.captions === 'boolean' ? stored.captions : base.captions,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The state behind {@link CardDisplayControls}, and where it is kept — debounced.
|
|
47
|
+
*
|
|
48
|
+
* Owner, flix, 2026-09-28: *"persist the setting to the db, with a slight debounce in case the
|
|
49
|
+
* user is toggling them just to test them and hasn't settled on one yet."* So a burst of taps is
|
|
50
|
+
* ONE save carrying the last value, and a burst that ends where it started is none.
|
|
51
|
+
*
|
|
52
|
+
* Where the value lives is the app's: flix keeps it per account on its server, roms per device
|
|
53
|
+
* in `localStorage`. Both are the same two callbacks.
|
|
54
|
+
*
|
|
55
|
+
* ```tsx
|
|
56
|
+
* const cards = useCardDisplay({ initial: readLocal, load: api.loadCards, save: api.saveCards });
|
|
57
|
+
* <CardDisplayControls value={cards.value} onChange={cards.setValue} captionsNoun='titles' />
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function useCardDisplay(options: UseCardDisplayOptions): UseCardDisplayResult {
|
|
61
|
+
const { enabled = true, debounceMs = 800 } = options;
|
|
62
|
+
const [value, setState] = useState<CardDisplay>(() => {
|
|
63
|
+
const initial = options.initial ?? DEFAULT_CARD_DISPLAY;
|
|
64
|
+
return typeof initial === 'function' ? initial() : initial;
|
|
65
|
+
});
|
|
66
|
+
const [ready, setReady] = useState(!(enabled && options.load));
|
|
67
|
+
|
|
68
|
+
// The callbacks are read through a ref so an inline arrow at the call site does not restart
|
|
69
|
+
// the load or drop a pending save on every render.
|
|
70
|
+
const callbacks = useRef(options);
|
|
71
|
+
callbacks.current = options;
|
|
72
|
+
const kept = useRef<CardDisplay>(value);
|
|
73
|
+
const pending = useRef<CardDisplay | null>(null);
|
|
74
|
+
const touched = useRef(false);
|
|
75
|
+
const timer = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
76
|
+
|
|
77
|
+
const flush = useCallback((keepalive: boolean) => {
|
|
78
|
+
if (timer.current) clearTimeout(timer.current);
|
|
79
|
+
timer.current = null;
|
|
80
|
+
const next = pending.current;
|
|
81
|
+
pending.current = null;
|
|
82
|
+
if (!next || same(next, kept.current)) return;
|
|
83
|
+
const previous = kept.current;
|
|
84
|
+
kept.current = next;
|
|
85
|
+
const forget = () => {
|
|
86
|
+
// Not kept after all: the next change (or this one again) must be sent.
|
|
87
|
+
if (kept.current === next) kept.current = previous;
|
|
88
|
+
};
|
|
89
|
+
try {
|
|
90
|
+
void Promise.resolve(callbacks.current.save(next, { keepalive })).catch(forget);
|
|
91
|
+
} catch {
|
|
92
|
+
forget();
|
|
93
|
+
}
|
|
94
|
+
}, []);
|
|
95
|
+
|
|
96
|
+
const setValue = useCallback(
|
|
97
|
+
(next: CardDisplay) => {
|
|
98
|
+
touched.current = true;
|
|
99
|
+
setState(next);
|
|
100
|
+
pending.current = next;
|
|
101
|
+
if (timer.current) clearTimeout(timer.current);
|
|
102
|
+
timer.current = setTimeout(() => flush(false), debounceMs);
|
|
103
|
+
},
|
|
104
|
+
[debounceMs, flush],
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
const load = callbacks.current.load;
|
|
109
|
+
if (!enabled || !load) return;
|
|
110
|
+
let live = true;
|
|
111
|
+
load()
|
|
112
|
+
.then((stored) => {
|
|
113
|
+
if (!live || !stored || touched.current) return;
|
|
114
|
+
setState((drawn) => {
|
|
115
|
+
const next = merged(drawn, stored);
|
|
116
|
+
kept.current = next;
|
|
117
|
+
return next;
|
|
118
|
+
});
|
|
119
|
+
})
|
|
120
|
+
.catch(() => {
|
|
121
|
+
// A choice that cannot be read is the one already drawn.
|
|
122
|
+
})
|
|
123
|
+
.finally(() => {
|
|
124
|
+
if (live) setReady(true);
|
|
125
|
+
});
|
|
126
|
+
return () => {
|
|
127
|
+
live = false;
|
|
128
|
+
};
|
|
129
|
+
}, [enabled]);
|
|
130
|
+
|
|
131
|
+
// A tap in the last `debounceMs` before the tab closes or the view unmounts is still kept.
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
const onHide = () => flush(true);
|
|
134
|
+
globalThis.addEventListener?.('pagehide', onHide);
|
|
135
|
+
return () => {
|
|
136
|
+
globalThis.removeEventListener?.('pagehide', onHide);
|
|
137
|
+
flush(true);
|
|
138
|
+
};
|
|
139
|
+
}, [flush]);
|
|
140
|
+
|
|
141
|
+
return { value, setValue, ready };
|
|
142
|
+
}
|
package/src/react/index.ts
CHANGED
|
@@ -120,6 +120,14 @@ export {
|
|
|
120
120
|
} from './components/ChartTablePanel.js';
|
|
121
121
|
export * from './companion-link/index.js';
|
|
122
122
|
export { CardTapTarget, type CardTapTargetProps } from './components/CardTapTarget.js';
|
|
123
|
+
export { CardDisplayControls, type CardDisplayControlsProps } from './components/CardDisplayControls.js';
|
|
124
|
+
export {
|
|
125
|
+
CARD_SIZES,
|
|
126
|
+
type CardDisplay,
|
|
127
|
+
type CardSize,
|
|
128
|
+
DEFAULT_CARD_DISPLAY,
|
|
129
|
+
isCardSize,
|
|
130
|
+
} from './lib/cardDisplay.js';
|
|
123
131
|
export { hasSelectionWithin } from './lib/textSelection.js';
|
|
124
132
|
export {
|
|
125
133
|
ProblemDetailView,
|
|
@@ -637,6 +645,7 @@ export {
|
|
|
637
645
|
} from './hooks/useCrossContainerDrag.js';
|
|
638
646
|
export { useDebouncedCallback } from './hooks/useDebouncedCallback.js';
|
|
639
647
|
export { useDebouncedValue } from './hooks/useDebouncedValue.js';
|
|
648
|
+
export { type UseCardDisplayOptions, type UseCardDisplayResult, useCardDisplay } from './hooks/useCardDisplay.js';
|
|
640
649
|
export {
|
|
641
650
|
type UseDiscardGuardOptions,
|
|
642
651
|
type UseDiscardGuardResult,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a card grid is drawn: how big each card is, and whether the words under the image show.
|
|
3
|
+
*
|
|
4
|
+
* Owner, roms, 2026-09-27: *"Smaller cards could be half that size and maybe a quarter … so the
|
|
5
|
+
* user can scroll faster and see more cards at once"*, and *"a toggle to hide the game info so
|
|
6
|
+
* only the game image is visible"*. Then flix asked for the same pair (2026-09-28), which is why
|
|
7
|
+
* it lives here: two grids with their own copy of an S/M/L switch and a titles toggle drift the
|
|
8
|
+
* first time one of them changes a label or a hit target.
|
|
9
|
+
*
|
|
10
|
+
* 🔴 The SIZE is a word, not a width. What `small` means in pixels is the app's — roms draws box
|
|
11
|
+
* art at 10/7/5 rem, flix draws 2:3 posters — so this names the choice and each grid maps it onto
|
|
12
|
+
* its own column width. A number here would be one app's layout leaking into the other's.
|
|
13
|
+
*/
|
|
14
|
+
export type CardSize = 'large' | 'medium' | 'small';
|
|
15
|
+
|
|
16
|
+
/** Largest first — the order the switch reads left to right. */
|
|
17
|
+
export const CARD_SIZES: readonly CardSize[] = ['large', 'medium', 'small'];
|
|
18
|
+
|
|
19
|
+
export const isCardSize = (value: unknown): value is CardSize =>
|
|
20
|
+
value === 'large' || value === 'medium' || value === 'small';
|
|
21
|
+
|
|
22
|
+
/** The whole choice. `captions` is whether the words under each image are drawn. */
|
|
23
|
+
export interface CardDisplay {
|
|
24
|
+
size: CardSize;
|
|
25
|
+
captions: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Large cards with their words — what a grid looks like before anyone has chosen. */
|
|
29
|
+
export const DEFAULT_CARD_DISPLAY: CardDisplay = { size: 'large', captions: true };
|