@react-text-game/core 0.5.16 → 0.5.17
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/audio/audioTrack.d.ts +15 -0
- package/dist/audio/audioTrack.d.ts.map +1 -1
- package/dist/audio/audioTrack.js +32 -3
- package/dist/audio/audioTrack.js.map +1 -1
- package/dist/passages/widget.d.ts +48 -20
- package/dist/passages/widget.d.ts.map +1 -1
- package/dist/passages/widget.js +42 -18
- package/dist/passages/widget.js.map +1 -1
- package/dist/tests/passageDisplayCache.test.js +13 -31
- package/dist/tests/passageDisplayCache.test.js.map +1 -1
- package/dist/tests/widget.test.d.ts +2 -0
- package/dist/tests/widget.test.d.ts.map +1 -0
- package/dist/tests/widget.test.js +281 -0
- package/dist/tests/widget.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -31,6 +31,10 @@ export declare class AudioTrack {
|
|
|
31
31
|
private readonly state;
|
|
32
32
|
private readonly jsonPath;
|
|
33
33
|
private readonly unsubscribe?;
|
|
34
|
+
/** The original volume from options, used as target for fadeIn when current volume is corrupted */
|
|
35
|
+
private readonly originalVolume;
|
|
36
|
+
/** Animation frame ID for the current fade, used to cancel ongoing fades */
|
|
37
|
+
private fadeAnimationId;
|
|
34
38
|
constructor(src: string, options?: AudioOptions);
|
|
35
39
|
/**
|
|
36
40
|
* Attaches event listeners to sync HTMLAudioElement state with reactive state.
|
|
@@ -146,6 +150,8 @@ export declare class AudioTrack {
|
|
|
146
150
|
* Fades in the audio over a specified duration.
|
|
147
151
|
*
|
|
148
152
|
* Starts at volume 0 and gradually increases to the target volume.
|
|
153
|
+
* Uses the original configured volume as the target, falling back to
|
|
154
|
+
* current state volume if it's non-zero.
|
|
149
155
|
*
|
|
150
156
|
* @param duration - Fade duration in milliseconds
|
|
151
157
|
* @returns Promise that resolves when fade completes
|
|
@@ -168,6 +174,15 @@ export declare class AudioTrack {
|
|
|
168
174
|
* ```
|
|
169
175
|
*/
|
|
170
176
|
fadeOut(duration?: number): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Cancels any ongoing fade animation.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* audio.cancelFade();
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
cancelFade(): void;
|
|
171
186
|
/**
|
|
172
187
|
* Fades to a target volume over a specified duration.
|
|
173
188
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioTrack.d.ts","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAkB,UAAU,EAAE,MAAM,SAAS,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAa;
|
|
1
|
+
{"version":3,"file":"audioTrack.d.ts","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"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"}
|
package/dist/audio/audioTrack.js
CHANGED
|
@@ -34,10 +34,15 @@ export class AudioTrack {
|
|
|
34
34
|
state;
|
|
35
35
|
jsonPath;
|
|
36
36
|
unsubscribe;
|
|
37
|
+
/** The original volume from options, used as target for fadeIn when current volume is corrupted */
|
|
38
|
+
originalVolume;
|
|
39
|
+
/** Animation frame ID for the current fade, used to cancel ongoing fades */
|
|
40
|
+
fadeAnimationId = null;
|
|
37
41
|
constructor(src, options = {}) {
|
|
38
42
|
this.id = options.id || `audio-${Date.now()}-${Math.random()}`;
|
|
39
43
|
this.src = src;
|
|
40
44
|
this.jsonPath = `${AUDIO_STORAGE_PATH}.${this.id}`;
|
|
45
|
+
this.originalVolume = options.volume ?? DEFAULT_AUDIO_OPTIONS.volume;
|
|
41
46
|
// Create reactive state with Valtio
|
|
42
47
|
this.state = proxy({
|
|
43
48
|
isPlaying: false,
|
|
@@ -273,6 +278,8 @@ export class AudioTrack {
|
|
|
273
278
|
* Fades in the audio over a specified duration.
|
|
274
279
|
*
|
|
275
280
|
* Starts at volume 0 and gradually increases to the target volume.
|
|
281
|
+
* Uses the original configured volume as the target, falling back to
|
|
282
|
+
* current state volume if it's non-zero.
|
|
276
283
|
*
|
|
277
284
|
* @param duration - Fade duration in milliseconds
|
|
278
285
|
* @returns Promise that resolves when fade completes
|
|
@@ -283,7 +290,11 @@ export class AudioTrack {
|
|
|
283
290
|
* ```
|
|
284
291
|
*/
|
|
285
292
|
async fadeIn(duration = 1000) {
|
|
286
|
-
|
|
293
|
+
// Cancel any ongoing fade first
|
|
294
|
+
this.cancelFade();
|
|
295
|
+
// Use original volume as target, or current state.volume if non-zero
|
|
296
|
+
// This prevents issues when fadeIn is called while a previous fade left volume at 0
|
|
297
|
+
const targetVolume = this.state.volume > 0 ? this.state.volume : this.originalVolume;
|
|
287
298
|
this.state.volume = 0;
|
|
288
299
|
this.audioElement.volume = 0;
|
|
289
300
|
await this.play();
|
|
@@ -301,9 +312,25 @@ export class AudioTrack {
|
|
|
301
312
|
* ```
|
|
302
313
|
*/
|
|
303
314
|
async fadeOut(duration = 1000) {
|
|
315
|
+
// Cancel any ongoing fade first
|
|
316
|
+
this.cancelFade();
|
|
304
317
|
await this.fadeTo(0, duration);
|
|
305
318
|
this.stop();
|
|
306
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Cancels any ongoing fade animation.
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```typescript
|
|
325
|
+
* audio.cancelFade();
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
cancelFade() {
|
|
329
|
+
if (this.fadeAnimationId !== null) {
|
|
330
|
+
cancelAnimationFrame(this.fadeAnimationId);
|
|
331
|
+
this.fadeAnimationId = null;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
307
334
|
/**
|
|
308
335
|
* Fades to a target volume over a specified duration.
|
|
309
336
|
*
|
|
@@ -323,13 +350,14 @@ export class AudioTrack {
|
|
|
323
350
|
this.audioElement.volume = currentVolume;
|
|
324
351
|
this.state.volume = currentVolume;
|
|
325
352
|
if (progress < 1) {
|
|
326
|
-
requestAnimationFrame(fade);
|
|
353
|
+
this.fadeAnimationId = requestAnimationFrame(fade);
|
|
327
354
|
}
|
|
328
355
|
else {
|
|
356
|
+
this.fadeAnimationId = null;
|
|
329
357
|
resolve();
|
|
330
358
|
}
|
|
331
359
|
};
|
|
332
|
-
requestAnimationFrame(fade);
|
|
360
|
+
this.fadeAnimationId = requestAnimationFrame(fade);
|
|
333
361
|
});
|
|
334
362
|
}
|
|
335
363
|
/**
|
|
@@ -416,6 +444,7 @@ export class AudioTrack {
|
|
|
416
444
|
* ```
|
|
417
445
|
*/
|
|
418
446
|
dispose() {
|
|
447
|
+
this.cancelFade();
|
|
419
448
|
this.stop();
|
|
420
449
|
this.unsubscribe?.();
|
|
421
450
|
AudioManager._unregisterTrack(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioTrack.js","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audioTrack.js","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,29 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { Passage } from "../passages/passage";
|
|
3
3
|
/**
|
|
4
4
|
* Content type for Widget passages.
|
|
5
|
-
* Can be a ReactNode directly, or a
|
|
5
|
+
* Can be a ReactNode directly, or a React functional component.
|
|
6
|
+
*
|
|
7
|
+
* **Important:** When passing a function, it is always treated as a React
|
|
8
|
+
* component and rendered via `createElement`. This ensures hooks work correctly
|
|
9
|
+
* even in minified production builds where function names are mangled.
|
|
6
10
|
*
|
|
7
11
|
* @example
|
|
8
12
|
* ```typescript
|
|
9
|
-
* // As ReactNode
|
|
13
|
+
* // As ReactNode (static content)
|
|
10
14
|
* const content: WidgetContent = <div>Hello</div>;
|
|
11
15
|
*
|
|
12
|
-
* // As
|
|
13
|
-
* const
|
|
16
|
+
* // As React component (supports hooks)
|
|
17
|
+
* const MyComponent = () => {
|
|
18
|
+
* const [count, setCount] = useState(0);
|
|
19
|
+
* return <div>Count: {count}</div>;
|
|
20
|
+
* };
|
|
21
|
+
* const content: WidgetContent = MyComponent;
|
|
22
|
+
*
|
|
23
|
+
* // For dynamic content without hooks, pre-evaluate the function:
|
|
24
|
+
* const content: WidgetContent = (() => <div>{Date.now()}</div>)();
|
|
14
25
|
* ```
|
|
15
26
|
*/
|
|
16
|
-
export type WidgetContent = ReactNode |
|
|
27
|
+
export type WidgetContent = ReactNode | React.FC;
|
|
17
28
|
/**
|
|
18
29
|
* Custom React component passage for fully customized UI.
|
|
19
30
|
*
|
|
@@ -21,11 +32,15 @@ export type WidgetContent = ReactNode | (() => ReactNode);
|
|
|
21
32
|
* providing complete control over the UI when the built-in passage types
|
|
22
33
|
* (Story, InteractiveMap) don't meet your needs.
|
|
23
34
|
*
|
|
35
|
+
* **Important:** When passing a function, it is always treated as a React
|
|
36
|
+
* component and rendered via `createElement`. This ensures hooks work correctly
|
|
37
|
+
* even in minified production builds.
|
|
38
|
+
*
|
|
24
39
|
* @example
|
|
25
40
|
* ```typescript
|
|
26
41
|
* import { newWidget } from '@react-text-game/core';
|
|
27
42
|
*
|
|
28
|
-
* // With ReactNode
|
|
43
|
+
* // With ReactNode (static content)
|
|
29
44
|
* const inventoryUI = newWidget('inventory', (
|
|
30
45
|
* <div className="inventory">
|
|
31
46
|
* <h2>Your Inventory</h2>
|
|
@@ -34,13 +49,12 @@ export type WidgetContent = ReactNode | (() => ReactNode);
|
|
|
34
49
|
* </div>
|
|
35
50
|
* ));
|
|
36
51
|
*
|
|
37
|
-
* // With
|
|
38
|
-
* const
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* ));
|
|
52
|
+
* // With React component (supports hooks)
|
|
53
|
+
* const MyMenu = () => {
|
|
54
|
+
* const [selected, setSelected] = useState(null);
|
|
55
|
+
* return <MenuUI selected={selected} onSelect={setSelected} />;
|
|
56
|
+
* };
|
|
57
|
+
* const menuWidget = newWidget('menu', MyMenu);
|
|
44
58
|
*
|
|
45
59
|
* // Navigate to custom UI
|
|
46
60
|
* Game.jumpTo(inventoryUI);
|
|
@@ -62,7 +76,12 @@ export declare class Widget extends Passage {
|
|
|
62
76
|
constructor(id: string, content: WidgetContent);
|
|
63
77
|
/**
|
|
64
78
|
* Returns the React node for rendering.
|
|
65
|
-
* If content is a function, it
|
|
79
|
+
* If content is a function, it is treated as a React component and
|
|
80
|
+
* rendered via createElement to properly support hooks.
|
|
81
|
+
*
|
|
82
|
+
* **Note:** Functions are always rendered via `createElement`, never called
|
|
83
|
+
* directly. This ensures hooks work correctly in minified builds where
|
|
84
|
+
* function names are mangled to lowercase identifiers.
|
|
66
85
|
*
|
|
67
86
|
* @returns The React content to be rendered
|
|
68
87
|
*/
|
|
@@ -71,21 +90,30 @@ export declare class Widget extends Passage {
|
|
|
71
90
|
/**
|
|
72
91
|
* Factory function for creating Widget passages.
|
|
73
92
|
*
|
|
93
|
+
* **Important:** When passing a function, it is always treated as a React
|
|
94
|
+
* component and rendered via `createElement`. This ensures hooks work correctly
|
|
95
|
+
* even in minified production builds where function names are mangled.
|
|
96
|
+
*
|
|
74
97
|
* @param id - Unique identifier for the widget
|
|
75
|
-
* @param content - React node or
|
|
98
|
+
* @param content - React node or React functional component to display
|
|
76
99
|
* @returns New Widget instance
|
|
77
100
|
*
|
|
78
101
|
* @example
|
|
79
102
|
* ```typescript
|
|
80
|
-
* // With ReactNode
|
|
103
|
+
* // With ReactNode (static content)
|
|
81
104
|
* const customMenu = newWidget('menu', (
|
|
82
105
|
* <CustomMenuComponent />
|
|
83
106
|
* ));
|
|
84
107
|
*
|
|
85
|
-
* // With
|
|
86
|
-
* const
|
|
87
|
-
*
|
|
88
|
-
*
|
|
108
|
+
* // With React component (supports hooks)
|
|
109
|
+
* const MyComponent = () => {
|
|
110
|
+
* const [count, setCount] = useState(0);
|
|
111
|
+
* return <Counter count={count} onChange={setCount} />;
|
|
112
|
+
* };
|
|
113
|
+
* const counterWidget = newWidget('counter', MyComponent);
|
|
114
|
+
*
|
|
115
|
+
* // For dynamic content without hooks, pre-evaluate:
|
|
116
|
+
* const timestampWidget = newWidget('time', (() => <div>{Date.now()}</div>)());
|
|
89
117
|
* ```
|
|
90
118
|
*/
|
|
91
119
|
export declare const newWidget: (id: string, content: WidgetContent) => Widget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAK9C;;;;;;;;;;OAUG;IACH,OAAO,IAAI,SAAS;CAcvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,EAAE,SAAS,aAAa,WACjC,CAAC"}
|
package/dist/passages/widget.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
1
2
|
import { Passage } from "../passages/passage";
|
|
2
3
|
/**
|
|
3
4
|
* Custom React component passage for fully customized UI.
|
|
@@ -6,11 +7,15 @@ import { Passage } from "../passages/passage";
|
|
|
6
7
|
* providing complete control over the UI when the built-in passage types
|
|
7
8
|
* (Story, InteractiveMap) don't meet your needs.
|
|
8
9
|
*
|
|
10
|
+
* **Important:** When passing a function, it is always treated as a React
|
|
11
|
+
* component and rendered via `createElement`. This ensures hooks work correctly
|
|
12
|
+
* even in minified production builds.
|
|
13
|
+
*
|
|
9
14
|
* @example
|
|
10
15
|
* ```typescript
|
|
11
16
|
* import { newWidget } from '@react-text-game/core';
|
|
12
17
|
*
|
|
13
|
-
* // With ReactNode
|
|
18
|
+
* // With ReactNode (static content)
|
|
14
19
|
* const inventoryUI = newWidget('inventory', (
|
|
15
20
|
* <div className="inventory">
|
|
16
21
|
* <h2>Your Inventory</h2>
|
|
@@ -19,13 +24,12 @@ import { Passage } from "../passages/passage";
|
|
|
19
24
|
* </div>
|
|
20
25
|
* ));
|
|
21
26
|
*
|
|
22
|
-
* // With
|
|
23
|
-
* const
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* ));
|
|
27
|
+
* // With React component (supports hooks)
|
|
28
|
+
* const MyMenu = () => {
|
|
29
|
+
* const [selected, setSelected] = useState(null);
|
|
30
|
+
* return <MenuUI selected={selected} onSelect={setSelected} />;
|
|
31
|
+
* };
|
|
32
|
+
* const menuWidget = newWidget('menu', MyMenu);
|
|
29
33
|
*
|
|
30
34
|
* // Navigate to custom UI
|
|
31
35
|
* Game.jumpTo(inventoryUI);
|
|
@@ -50,14 +54,25 @@ export class Widget extends Passage {
|
|
|
50
54
|
}
|
|
51
55
|
/**
|
|
52
56
|
* Returns the React node for rendering.
|
|
53
|
-
* If content is a function, it
|
|
57
|
+
* If content is a function, it is treated as a React component and
|
|
58
|
+
* rendered via createElement to properly support hooks.
|
|
59
|
+
*
|
|
60
|
+
* **Note:** Functions are always rendered via `createElement`, never called
|
|
61
|
+
* directly. This ensures hooks work correctly in minified builds where
|
|
62
|
+
* function names are mangled to lowercase identifiers.
|
|
54
63
|
*
|
|
55
64
|
* @returns The React content to be rendered
|
|
56
65
|
*/
|
|
57
66
|
display() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
let result;
|
|
68
|
+
if (typeof this.content === "function") {
|
|
69
|
+
// Always use createElement for functions to ensure hooks work
|
|
70
|
+
// correctly in minified builds where function names are mangled
|
|
71
|
+
result = createElement(this.content);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
result = this.content;
|
|
75
|
+
}
|
|
61
76
|
this._lastDisplayResult = result;
|
|
62
77
|
return result;
|
|
63
78
|
}
|
|
@@ -65,21 +80,30 @@ export class Widget extends Passage {
|
|
|
65
80
|
/**
|
|
66
81
|
* Factory function for creating Widget passages.
|
|
67
82
|
*
|
|
83
|
+
* **Important:** When passing a function, it is always treated as a React
|
|
84
|
+
* component and rendered via `createElement`. This ensures hooks work correctly
|
|
85
|
+
* even in minified production builds where function names are mangled.
|
|
86
|
+
*
|
|
68
87
|
* @param id - Unique identifier for the widget
|
|
69
|
-
* @param content - React node or
|
|
88
|
+
* @param content - React node or React functional component to display
|
|
70
89
|
* @returns New Widget instance
|
|
71
90
|
*
|
|
72
91
|
* @example
|
|
73
92
|
* ```typescript
|
|
74
|
-
* // With ReactNode
|
|
93
|
+
* // With ReactNode (static content)
|
|
75
94
|
* const customMenu = newWidget('menu', (
|
|
76
95
|
* <CustomMenuComponent />
|
|
77
96
|
* ));
|
|
78
97
|
*
|
|
79
|
-
* // With
|
|
80
|
-
* const
|
|
81
|
-
*
|
|
82
|
-
*
|
|
98
|
+
* // With React component (supports hooks)
|
|
99
|
+
* const MyComponent = () => {
|
|
100
|
+
* const [count, setCount] = useState(0);
|
|
101
|
+
* return <Counter count={count} onChange={setCount} />;
|
|
102
|
+
* };
|
|
103
|
+
* const counterWidget = newWidget('counter', MyComponent);
|
|
104
|
+
*
|
|
105
|
+
* // For dynamic content without hooks, pre-evaluate:
|
|
106
|
+
* const timestampWidget = newWidget('time', (() => <div>{Date.now()}</div>)());
|
|
83
107
|
* ```
|
|
84
108
|
*/
|
|
85
109
|
export const newWidget = (id, content) => new Widget(id, content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4B5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACc,OAAO,CAAgB;IAExC;;;;;OAKG;IACH,YAAY,EAAU,EAAE,OAAsB;QAC1C,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACH,IAAI,MAAiB,CAAC;QAEtB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,8DAA8D;YAC9D,gEAAgE;YAChE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,OAAsB,EAAE,EAAE,CAC5D,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -220,47 +220,29 @@ describe("Passage Display Cache - No Double Side Effects", () => {
|
|
|
220
220
|
});
|
|
221
221
|
describe("Widget Cache", () => {
|
|
222
222
|
test("getLastDisplayResult returns null before first display", () => {
|
|
223
|
-
const widget = newWidget(uniqueId("widget"),
|
|
223
|
+
const widget = newWidget(uniqueId("widget"), "Static Content");
|
|
224
224
|
expect(widget.getLastDisplayResult()).toBeNull();
|
|
225
225
|
expect(widget.hasDisplayCache()).toBe(false);
|
|
226
226
|
});
|
|
227
|
-
test("getLastDisplayResult returns cached result after display", () => {
|
|
228
|
-
const widget = newWidget(uniqueId("widget"), () => "Widget Content");
|
|
229
|
-
const displayResult = widget.display();
|
|
230
|
-
const cachedResult = widget.getLastDisplayResult();
|
|
231
|
-
expect(cachedResult).toBe(displayResult);
|
|
232
|
-
expect(widget.hasDisplayCache()).toBe(true);
|
|
233
|
-
});
|
|
234
|
-
test("getLastDisplayResult does NOT trigger content function (no side effects)", () => {
|
|
235
|
-
let callCount = 0;
|
|
236
|
-
const widget = newWidget(uniqueId("widget"), () => {
|
|
237
|
-
callCount++;
|
|
238
|
-
return `Content ${callCount}`;
|
|
239
|
-
});
|
|
240
|
-
widget.display();
|
|
241
|
-
expect(callCount).toBe(1);
|
|
242
|
-
widget.getLastDisplayResult();
|
|
243
|
-
widget.getLastDisplayResult();
|
|
244
|
-
expect(callCount).toBe(1); // No additional calls
|
|
245
|
-
});
|
|
246
|
-
test("static content widget caches correctly", () => {
|
|
227
|
+
test("getLastDisplayResult returns cached result after display for static content", () => {
|
|
247
228
|
const staticContent = "Static Widget Content";
|
|
248
229
|
const widget = newWidget(uniqueId("widget"), staticContent);
|
|
249
230
|
const displayResult = widget.display();
|
|
250
231
|
const cachedResult = widget.getLastDisplayResult();
|
|
251
232
|
expect(cachedResult).toBe(staticContent);
|
|
252
233
|
expect(cachedResult).toBe(displayResult);
|
|
234
|
+
expect(widget.hasDisplayCache()).toBe(true);
|
|
253
235
|
});
|
|
254
|
-
test("
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
expect(
|
|
262
|
-
|
|
263
|
-
expect(widget.
|
|
236
|
+
test("function content is treated as React component (createElement)", () => {
|
|
237
|
+
// With the new behavior, functions are always treated as React components
|
|
238
|
+
// and wrapped in createElement, not called directly.
|
|
239
|
+
// This ensures hooks work correctly in minified production builds.
|
|
240
|
+
const widget = newWidget(uniqueId("widget"), () => "Content");
|
|
241
|
+
const displayResult = widget.display();
|
|
242
|
+
// The result is a React element, not the string "Content"
|
|
243
|
+
expect(displayResult).toBeDefined();
|
|
244
|
+
expect(typeof displayResult).toBe("object");
|
|
245
|
+
expect(widget.hasDisplayCache()).toBe(true);
|
|
264
246
|
});
|
|
265
247
|
});
|
|
266
248
|
describe("Base Passage Methods", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passageDisplayCache.test.js","sourceRoot":"","sources":["../../src/tests/passageDisplayCache.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"passageDisplayCache.test.js","sourceRoot":"","sources":["../../src/tests/passageDisplayCache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.test.d.ts","sourceRoot":"","sources":["../../src/tests/widget.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, test } from "bun:test";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { Game } from "../game";
|
|
4
|
+
import { newWidget, Widget } from "../passages/widget";
|
|
5
|
+
import { Storage } from "../storage";
|
|
6
|
+
// Counter for unique IDs
|
|
7
|
+
let testCounter = 0;
|
|
8
|
+
function uniqueId(prefix) {
|
|
9
|
+
return `${prefix}-${testCounter++}`;
|
|
10
|
+
}
|
|
11
|
+
describe("Widget Passage", () => {
|
|
12
|
+
beforeEach(async () => {
|
|
13
|
+
Storage.setState({});
|
|
14
|
+
await Game.init({ gameName: "Test Game", isDevMode: true });
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
Game._resetForTesting();
|
|
18
|
+
});
|
|
19
|
+
describe("Creation", () => {
|
|
20
|
+
test("creates widget with static ReactNode content", () => {
|
|
21
|
+
const content = createElement("div", null, "Hello World");
|
|
22
|
+
const widget = newWidget(uniqueId("widget"), content);
|
|
23
|
+
expect(widget).toBeInstanceOf(Widget);
|
|
24
|
+
expect(widget.type).toBe("widget");
|
|
25
|
+
});
|
|
26
|
+
test("creates widget with string content", () => {
|
|
27
|
+
const widget = newWidget(uniqueId("widget"), "Simple String");
|
|
28
|
+
expect(widget).toBeInstanceOf(Widget);
|
|
29
|
+
expect(widget.type).toBe("widget");
|
|
30
|
+
});
|
|
31
|
+
test("creates widget with number content", () => {
|
|
32
|
+
const widget = newWidget(uniqueId("widget"), 42);
|
|
33
|
+
expect(widget).toBeInstanceOf(Widget);
|
|
34
|
+
});
|
|
35
|
+
test("creates widget with null content", () => {
|
|
36
|
+
const widget = newWidget(uniqueId("widget"), null);
|
|
37
|
+
expect(widget).toBeInstanceOf(Widget);
|
|
38
|
+
});
|
|
39
|
+
test("creates widget with function component", () => {
|
|
40
|
+
const MyComponent = () => createElement("div", null, "Component");
|
|
41
|
+
const widget = newWidget(uniqueId("widget"), MyComponent);
|
|
42
|
+
expect(widget).toBeInstanceOf(Widget);
|
|
43
|
+
});
|
|
44
|
+
test("registers widget with Game on creation", () => {
|
|
45
|
+
const id = uniqueId("widget");
|
|
46
|
+
const widget = newWidget(id, "Content");
|
|
47
|
+
expect(Game.getPassageById(id)).toBe(widget);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("Display - Static Content", () => {
|
|
51
|
+
test("display returns static string content directly", () => {
|
|
52
|
+
const widget = newWidget(uniqueId("widget"), "Static String");
|
|
53
|
+
const result = widget.display();
|
|
54
|
+
expect(result).toBe("Static String");
|
|
55
|
+
});
|
|
56
|
+
test("display returns static number content directly", () => {
|
|
57
|
+
const widget = newWidget(uniqueId("widget"), 123);
|
|
58
|
+
const result = widget.display();
|
|
59
|
+
expect(result).toBe(123);
|
|
60
|
+
});
|
|
61
|
+
test("display returns null content directly", () => {
|
|
62
|
+
const widget = newWidget(uniqueId("widget"), null);
|
|
63
|
+
const result = widget.display();
|
|
64
|
+
expect(result).toBeNull();
|
|
65
|
+
});
|
|
66
|
+
test("display returns ReactNode content directly", () => {
|
|
67
|
+
const content = createElement("span", { className: "test" }, "Text");
|
|
68
|
+
const widget = newWidget(uniqueId("widget"), content);
|
|
69
|
+
const result = widget.display();
|
|
70
|
+
expect(result).toBe(content);
|
|
71
|
+
});
|
|
72
|
+
test("display returns pre-evaluated JSX directly", () => {
|
|
73
|
+
// Simulating: newWidget('id', (() => <div>...</div>)())
|
|
74
|
+
const preEvaluated = createElement("div", null, Date.now());
|
|
75
|
+
const widget = newWidget(uniqueId("widget"), preEvaluated);
|
|
76
|
+
const result = widget.display();
|
|
77
|
+
expect(result).toBe(preEvaluated);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe("Display - Function Content (React Components)", () => {
|
|
81
|
+
test("display wraps function in createElement", () => {
|
|
82
|
+
const MyComponent = () => createElement("div", null, "Hello");
|
|
83
|
+
const widget = newWidget(uniqueId("widget"), MyComponent);
|
|
84
|
+
const result = widget.display();
|
|
85
|
+
// Result should be a React element, not the string "Hello"
|
|
86
|
+
expect(result).toBeDefined();
|
|
87
|
+
expect(typeof result).toBe("object");
|
|
88
|
+
expect(result).not.toBe("Hello");
|
|
89
|
+
});
|
|
90
|
+
test("display creates React element with correct type", () => {
|
|
91
|
+
const MyComponent = () => createElement("div", null, "Content");
|
|
92
|
+
const widget = newWidget(uniqueId("widget"), MyComponent);
|
|
93
|
+
const result = widget.display();
|
|
94
|
+
// The element's type should be the component function
|
|
95
|
+
expect(result.type).toBe(MyComponent);
|
|
96
|
+
});
|
|
97
|
+
test("function is NOT called directly during display", () => {
|
|
98
|
+
let wasCalled = false;
|
|
99
|
+
const MyComponent = () => {
|
|
100
|
+
wasCalled = true;
|
|
101
|
+
return createElement("div", null, "Content");
|
|
102
|
+
};
|
|
103
|
+
const widget = newWidget(uniqueId("widget"), MyComponent);
|
|
104
|
+
// display() should NOT call the function - it wraps it in createElement
|
|
105
|
+
widget.display();
|
|
106
|
+
// The function is not called until React renders the element
|
|
107
|
+
expect(wasCalled).toBe(false);
|
|
108
|
+
});
|
|
109
|
+
test("arrow function component is wrapped in createElement", () => {
|
|
110
|
+
const ArrowComponent = () => createElement("span", null, "Arrow");
|
|
111
|
+
const widget = newWidget(uniqueId("widget"), ArrowComponent);
|
|
112
|
+
const result = widget.display();
|
|
113
|
+
expect(result.type).toBe(ArrowComponent);
|
|
114
|
+
});
|
|
115
|
+
test("named function component is wrapped in createElement", () => {
|
|
116
|
+
function NamedComponent() {
|
|
117
|
+
return createElement("div", null, "Named");
|
|
118
|
+
}
|
|
119
|
+
const widget = newWidget(uniqueId("widget"), NamedComponent);
|
|
120
|
+
const result = widget.display();
|
|
121
|
+
expect(result.type).toBe(NamedComponent);
|
|
122
|
+
});
|
|
123
|
+
test("lowercase named function is still wrapped in createElement", () => {
|
|
124
|
+
// This is the key fix - even with lowercase names (like minified code),
|
|
125
|
+
// functions should be wrapped in createElement
|
|
126
|
+
function lowercaseComponent() {
|
|
127
|
+
return createElement("div", null, "lowercase");
|
|
128
|
+
}
|
|
129
|
+
const widget = newWidget(uniqueId("widget"), lowercaseComponent);
|
|
130
|
+
const result = widget.display();
|
|
131
|
+
expect(result.type).toBe(lowercaseComponent);
|
|
132
|
+
expect(typeof result).toBe("object");
|
|
133
|
+
});
|
|
134
|
+
test("minified-style single letter function is wrapped in createElement", () => {
|
|
135
|
+
// Simulating minified component names like 'e', 't', 'n'
|
|
136
|
+
const e = () => createElement("div", null, "minified");
|
|
137
|
+
const widget = newWidget(uniqueId("widget"), e);
|
|
138
|
+
const result = widget.display();
|
|
139
|
+
expect(result.type).toBe(e);
|
|
140
|
+
expect(typeof result).toBe("object");
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
describe("Display Caching", () => {
|
|
144
|
+
test("caches static content after display", () => {
|
|
145
|
+
const widget = newWidget(uniqueId("widget"), "Cached Content");
|
|
146
|
+
expect(widget.hasDisplayCache()).toBe(false);
|
|
147
|
+
widget.display();
|
|
148
|
+
expect(widget.hasDisplayCache()).toBe(true);
|
|
149
|
+
expect(widget.getLastDisplayResult()).toBe("Cached Content");
|
|
150
|
+
});
|
|
151
|
+
test("caches React element after display", () => {
|
|
152
|
+
const MyComponent = () => createElement("div", null, "Component");
|
|
153
|
+
const widget = newWidget(uniqueId("widget"), MyComponent);
|
|
154
|
+
expect(widget.hasDisplayCache()).toBe(false);
|
|
155
|
+
const displayResult = widget.display();
|
|
156
|
+
expect(widget.hasDisplayCache()).toBe(true);
|
|
157
|
+
const cachedResult = widget.getLastDisplayResult();
|
|
158
|
+
expect(cachedResult).toEqual(displayResult);
|
|
159
|
+
});
|
|
160
|
+
test("getLastDisplayResult returns null before first display", () => {
|
|
161
|
+
const widget = newWidget(uniqueId("widget"), "Content");
|
|
162
|
+
expect(widget.getLastDisplayResult()).toBeNull();
|
|
163
|
+
});
|
|
164
|
+
test("cache updates on subsequent display calls", () => {
|
|
165
|
+
const content1 = createElement("div", null, "First");
|
|
166
|
+
const widget = newWidget(uniqueId("widget"), content1);
|
|
167
|
+
widget.display();
|
|
168
|
+
const cache1 = widget.getLastDisplayResult();
|
|
169
|
+
// For static content, cache remains the same
|
|
170
|
+
widget.display();
|
|
171
|
+
const cache2 = widget.getLastDisplayResult();
|
|
172
|
+
expect(cache1).toBe(cache2);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
describe("Integration with Game", () => {
|
|
176
|
+
test("can navigate to widget passage", () => {
|
|
177
|
+
const widget = newWidget(uniqueId("widget"), "Navigate Test");
|
|
178
|
+
Game.jumpTo(widget.id);
|
|
179
|
+
expect(Game.currentPassage).toBe(widget);
|
|
180
|
+
});
|
|
181
|
+
test("widget is accessible via Game.getPassageById", () => {
|
|
182
|
+
const id = uniqueId("widget");
|
|
183
|
+
const widget = newWidget(id, "Accessible Content");
|
|
184
|
+
const retrieved = Game.getPassageById(id);
|
|
185
|
+
expect(retrieved).toBe(widget);
|
|
186
|
+
});
|
|
187
|
+
test("multiple widgets can coexist", () => {
|
|
188
|
+
const widget1 = newWidget(uniqueId("widget1"), "Content 1");
|
|
189
|
+
const widget2 = newWidget(uniqueId("widget2"), "Content 2");
|
|
190
|
+
const widget3 = newWidget(uniqueId("widget3"), "Content 3");
|
|
191
|
+
expect(Game.getPassageById(widget1.id)).toBe(widget1);
|
|
192
|
+
expect(Game.getPassageById(widget2.id)).toBe(widget2);
|
|
193
|
+
expect(Game.getPassageById(widget3.id)).toBe(widget3);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
describe("Edge Cases", () => {
|
|
197
|
+
test("handles undefined content gracefully", () => {
|
|
198
|
+
const widget = newWidget(uniqueId("widget"), undefined);
|
|
199
|
+
const result = widget.display();
|
|
200
|
+
expect(result).toBeUndefined();
|
|
201
|
+
});
|
|
202
|
+
test("handles boolean content", () => {
|
|
203
|
+
const widgetTrue = newWidget(uniqueId("widget"), true);
|
|
204
|
+
const widgetFalse = newWidget(uniqueId("widget"), false);
|
|
205
|
+
expect(widgetTrue.display()).toBe(true);
|
|
206
|
+
expect(widgetFalse.display()).toBe(false);
|
|
207
|
+
});
|
|
208
|
+
test("handles array content (fragment-like)", () => {
|
|
209
|
+
const content = [
|
|
210
|
+
createElement("div", { key: "1" }, "First"),
|
|
211
|
+
createElement("div", { key: "2" }, "Second"),
|
|
212
|
+
];
|
|
213
|
+
const widget = newWidget(uniqueId("widget"), content);
|
|
214
|
+
const result = widget.display();
|
|
215
|
+
expect(result).toBe(content);
|
|
216
|
+
expect(Array.isArray(result)).toBe(true);
|
|
217
|
+
});
|
|
218
|
+
test("handles nested createElement", () => {
|
|
219
|
+
const content = createElement("div", null, createElement("span", null, "Nested"), createElement("p", null, "Content"));
|
|
220
|
+
const widget = newWidget(uniqueId("widget"), content);
|
|
221
|
+
const result = widget.display();
|
|
222
|
+
expect(result).toBe(content);
|
|
223
|
+
});
|
|
224
|
+
test("function returning null is wrapped in createElement", () => {
|
|
225
|
+
const NullComponent = () => null;
|
|
226
|
+
const widget = newWidget(uniqueId("widget"), NullComponent);
|
|
227
|
+
const result = widget.display();
|
|
228
|
+
expect(result.type).toBe(NullComponent);
|
|
229
|
+
});
|
|
230
|
+
test("function returning undefined is wrapped in createElement", () => {
|
|
231
|
+
const UndefinedComponent = () => undefined;
|
|
232
|
+
const widget = newWidget(uniqueId("widget"), UndefinedComponent);
|
|
233
|
+
const result = widget.display();
|
|
234
|
+
expect(result.type).toBe(UndefinedComponent);
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
describe("Minification Safety", () => {
|
|
238
|
+
// These tests verify the fix for the minification issue where
|
|
239
|
+
// function names get mangled to lowercase identifiers
|
|
240
|
+
test("component with mangled name 'a' works correctly", () => {
|
|
241
|
+
const a = () => createElement("div", null, "Mangled A");
|
|
242
|
+
const widget = newWidget(uniqueId("widget"), a);
|
|
243
|
+
const result = widget.display();
|
|
244
|
+
expect(typeof result).toBe("object");
|
|
245
|
+
expect(result.type).toBe(a);
|
|
246
|
+
});
|
|
247
|
+
test("component with mangled name 't' works correctly", () => {
|
|
248
|
+
const t = () => createElement("div", null, "Mangled T");
|
|
249
|
+
const widget = newWidget(uniqueId("widget"), t);
|
|
250
|
+
const result = widget.display();
|
|
251
|
+
expect(typeof result).toBe("object");
|
|
252
|
+
expect(result.type).toBe(t);
|
|
253
|
+
});
|
|
254
|
+
test("component with numeric-like name works correctly", () => {
|
|
255
|
+
const _0 = () => createElement("div", null, "Numeric");
|
|
256
|
+
const widget = newWidget(uniqueId("widget"), _0);
|
|
257
|
+
const result = widget.display();
|
|
258
|
+
expect(typeof result).toBe("object");
|
|
259
|
+
expect(result.type).toBe(_0);
|
|
260
|
+
});
|
|
261
|
+
test("anonymous function works correctly", () => {
|
|
262
|
+
const widget = newWidget(uniqueId("widget"), function () {
|
|
263
|
+
return createElement("div", null, "Anonymous");
|
|
264
|
+
});
|
|
265
|
+
const result = widget.display();
|
|
266
|
+
expect(typeof result).toBe("object");
|
|
267
|
+
});
|
|
268
|
+
test("component assigned to variable with different name works", () => {
|
|
269
|
+
function OriginalName() {
|
|
270
|
+
return createElement("div", null, "Original");
|
|
271
|
+
}
|
|
272
|
+
// Simulating: const x = OriginalName; (name property becomes 'OriginalName')
|
|
273
|
+
const x = OriginalName;
|
|
274
|
+
const widget = newWidget(uniqueId("widget"), x);
|
|
275
|
+
const result = widget.display();
|
|
276
|
+
expect(result.type).toBe(x);
|
|
277
|
+
expect(result.type).toBe(OriginalName);
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
//# sourceMappingURL=widget.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.test.js","sourceRoot":"","sources":["../../src/tests/widget.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-text-game/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.17",
|
|
4
4
|
"description": "A powerful React-based text game engine with reactive state management, passage-based navigation, and persistent save system for building interactive narrative experiences",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|