@gamepark/react-game 7.5.11 → 7.5.12

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.
@@ -5,7 +5,7 @@ import { isMoveItemsAtOnce, isSelectItem } from '@gamepark/rules-api';
5
5
  import { isEqual } from 'es-toolkit';
6
6
  import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
7
7
  import { grabbingCursor, grabCursor } from '../../css';
8
- import { useMaterialContextRef, usePlay } from '../../hooks';
8
+ import { useLegalMoves, useMaterialContextRef, usePlay } from '../../hooks';
9
9
  import { getLocationOriginCss } from '../../locators';
10
10
  import { combineEventListeners, findIfUnique } from '../../utilities';
11
11
  import { useScale } from './GameTable';
@@ -90,13 +90,14 @@ const DraggableMaterialInnerBase = forwardRef(({ highlight, type, index, display
90
90
  };
91
91
  }
92
92
  }, [itemContext, play, legalMoves]);
93
+ const legalMovesForLongClick = useLegalMoves({ includeDuringAnimations: true });
93
94
  const onLongClickMove = useMemo(() => {
94
95
  if (unselect || onShortClickMove)
95
96
  return;
96
- const move = findIfUnique(legalMoves, move => description.canLongClick(move, itemContext));
97
+ const move = findIfUnique(legalMovesForLongClick, move => description.canLongClick(move, itemContext));
97
98
  if (move !== undefined)
98
99
  return () => play(move);
99
- }, [itemContext, play, legalMoves]);
100
+ }, [itemContext, play, legalMovesForLongClick]);
100
101
  const hadMenu = useRef(!!menu);
101
102
  useEffect(() => {
102
103
  if (hadMenu.current && !menu && !menuAlwaysVisible && item.selected) {
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableMaterial.js","sourceRoot":"","sources":["../../../src/components/material/DraggableMaterial.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DraggableMaterial.js","sourceRoot":"","sources":["../../../src/components/material/DraggableMaterial.tsx"],"names":[],"mappings":"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"}
@@ -1,29 +1,13 @@
1
1
  import { keyframes } from '@emotion/react';
2
- import { AnimationStep } from '@gamepark/react-client';
3
2
  import { fadeIn } from '../../../css';
4
3
  import { defaultOrigin, getItemFromContext, getOriginDeltaPosition } from '../../../locators';
5
4
  import { getFirstStockItem, getFirstStockItemTransforms } from './getFirstStockItemTransforms.util';
6
5
  import { ItemAnimations } from './ItemAnimations';
7
6
  import { toClosestRotations, toSingleRotation } from './rotations.utils';
8
7
  import { transformItem } from './transformItem.util';
9
- // FIFO queue keyed by consequence index avoids dependency on unstable action IDs
10
- // (action.id can change from "local-xxx" to server-assigned id between getPreDuration and getPostDuration)
11
- const preQuantityQueue = new Map();
12
- const createdItemEntries = new Map();
13
- function getConsequenceIndex(action) {
14
- const step = action.animation?.step;
15
- return (step === AnimationStep.BEFORE_MOVE || step === AnimationStep.AFTER_UNDO)
16
- ? action.played - 1
17
- : action.played - 2;
18
- }
19
- function getOrCreateArray(map, key) {
20
- let arr = map.get(key);
21
- if (!arr) {
22
- arr = [];
23
- map.set(key, arr);
24
- }
25
- return arr;
26
- }
8
+ // Pre-quantity snapshot captured synchronously between getPreDuration and getPostDuration
9
+ // within the same reducer call. No keying needed only one CreateItem is processed at a time.
10
+ let pendingSnapshot;
27
11
  export class CreateItemAnimations extends ItemAnimations {
28
12
  duration;
29
13
  trajectory;
@@ -35,22 +19,17 @@ export class CreateItemAnimations extends ItemAnimations {
35
19
  getPreDuration(move, context) {
36
20
  const rules = new context.Rules(context.game, { player: context.playerId });
37
21
  const items = rules.game.items?.[move.itemType] ?? [];
38
- const key = getConsequenceIndex(context.action);
39
- getOrCreateArray(preQuantityQueue, key).push(items.map((item) => item.quantity));
22
+ pendingSnapshot = items.map((item) => item.quantity);
40
23
  return 0;
41
24
  }
42
25
  getPostDuration(move, context) {
43
26
  const rules = new context.Rules(context.game, { player: context.playerId });
44
27
  const items = rules.game.items?.[move.itemType] ?? [];
45
- const key = getConsequenceIndex(context.action);
46
- const actionId = context.action.id;
47
28
  // Start with the prediction — always available and correct except in simultaneous phases
48
29
  let createdIndex = rules.mutator(move.itemType).getItemCreationIndex(move.item);
49
- // Dequeue the snapshot (FIFO immune to action ID changes)
50
- const queue = preQuantityQueue.get(key);
51
- const snapshot = queue?.shift();
52
- if (queue && queue.length === 0)
53
- preQuantityQueue.delete(key);
30
+ // Improve with snapshot comparison: find the first item whose quantity increased
31
+ const snapshot = pendingSnapshot;
32
+ pendingSnapshot = undefined;
54
33
  if (snapshot) {
55
34
  for (let i = 0; i < items.length; i++) {
56
35
  const oldQuantity = i < snapshot.length ? (snapshot[i] ?? 1) : 0;
@@ -61,19 +40,11 @@ export class CreateItemAnimations extends ItemAnimations {
61
40
  }
62
41
  }
63
42
  }
64
- const entry = { actionId, index: createdIndex, itemType: move.itemType };
65
- getOrCreateArray(createdItemEntries, key).push(entry);
66
- // Clean up to prevent memory leaks
67
- setTimeout(() => {
68
- const entries = createdItemEntries.get(key);
69
- if (entries) {
70
- const idx = entries.indexOf(entry);
71
- if (idx !== -1)
72
- entries.splice(idx, 1);
73
- if (entries.length === 0)
74
- createdItemEntries.delete(key);
75
- }
76
- }, this.duration * 2000);
43
+ // Compute the range of displayIndexes to animate
44
+ const quantity = items[createdIndex]?.quantity ?? 1;
45
+ const createdQuantity = move.item.quantity ?? 1;
46
+ // Store animation data on the action (Immer draft) for use in isItemToAnimate
47
+ context.action.animationData = { createdIndex, displayIndexes: [quantity - createdQuantity, quantity - 1] };
77
48
  return this.duration;
78
49
  }
79
50
  getItemAnimation(context, animation, boundaries) {
@@ -114,22 +85,10 @@ export class CreateItemAnimations extends ItemAnimations {
114
85
  }
115
86
  isItemToAnimate(context, animation) {
116
87
  const { type, index, displayIndex } = context;
117
- const key = getConsequenceIndex(animation.action);
118
- const entries = createdItemEntries.get(key);
119
- // Primary: match by action ID
120
- let entry = entries?.find(e => e.actionId === animation.action.id);
121
- // Fallback: action.id may have changed (local → server), match by itemType
122
- if (!entry) {
123
- entry = entries?.findLast(e => e.itemType === animation.move.itemType);
124
- // Migrate the entry to the new action ID so subsequent calls find it directly
125
- if (entry)
126
- entry.actionId = animation.action.id;
127
- }
128
- if (animation.move.itemType !== type || entry?.index !== index)
88
+ const data = animation.action.animationData;
89
+ if (!data || animation.move.itemType !== type || data.createdIndex !== index)
129
90
  return false;
130
- const quantity = getItemFromContext(context).quantity ?? 1;
131
- const createdQuantity = animation.move.item.quantity ?? 1;
132
- return displayIndex >= quantity - createdQuantity;
91
+ return displayIndex >= data.displayIndexes[0] && displayIndex <= data.displayIndexes[1];
133
92
  }
134
93
  getKeyframesFromOrigin(origin, _animation, _context) {
135
94
  return keyframes `
@@ -1 +1 @@
1
- {"version":3,"file":"CreateItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/CreateItemAnimations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/CreateItemAnimations.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,7 @@
1
- export declare function useLegalMoves<Move = any>(predicate?: (move: Move) => boolean): Move[];
1
+ type LegalMovesOptions<Move> = {
2
+ predicate?: (move: Move) => boolean;
3
+ includeDuringAnimations?: boolean;
4
+ };
5
+ export declare function useLegalMoves<Move = any>(predicateOrOptions?: ((move: Move) => boolean) | LegalMovesOptions<Move>): Move[];
2
6
  export declare function useLegalMove<Move = any>(predicate?: (move: Move) => boolean): Move | undefined;
7
+ export {};
@@ -1,11 +1,14 @@
1
1
  import { useGameSelector } from '@gamepark/react-client';
2
2
  import { useIsAnimatingPlayerAction } from '../components/material/utils/useIsAnimatingPlayerAction';
3
3
  const EMPTY_MOVES = [];
4
- export function useLegalMoves(predicate) {
4
+ export function useLegalMoves(predicateOrOptions) {
5
5
  const legalMoves = useGameSelector((state) => state.legalMoves);
6
6
  const gameOver = useGameSelector((state) => state.gameOver);
7
7
  const isAnimatingPlayerAction = useIsAnimatingPlayerAction();
8
- if (gameOver || isAnimatingPlayerAction)
8
+ const { predicate, includeDuringAnimations } = typeof predicateOrOptions === 'function'
9
+ ? { predicate: predicateOrOptions, includeDuringAnimations: false }
10
+ : { predicate: predicateOrOptions?.predicate, includeDuringAnimations: predicateOrOptions?.includeDuringAnimations ?? false };
11
+ if (gameOver || (!includeDuringAnimations && isAnimatingPlayerAction))
9
12
  return EMPTY_MOVES;
10
13
  return predicate ? legalMoves.filter(predicate) : legalMoves;
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useLegalMoves.js","sourceRoot":"","sources":["../../src/hooks/useLegalMoves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,MAAM,WAAW,GAAY,EAAE,CAAA;AAE/B,MAAM,UAAU,aAAa,CAAa,SAAmC;IAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAA;IAC5D,IAAI,QAAQ,IAAI,uBAAuB;QAAE,OAAO,WAAW,CAAA;IAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAa,SAAmC;IAC1E,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"useLegalMoves.js","sourceRoot":"","sources":["../../src/hooks/useLegalMoves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,MAAM,WAAW,GAAY,EAAE,CAAA;AAO/B,MAAM,UAAU,aAAa,CAAa,kBAAwE;IAChH,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAA;IAC5D,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAG,OAAO,kBAAkB,KAAK,UAAU;QACrF,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,EAAE;QACnE,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,uBAAuB,IAAI,KAAK,EAAE,CAAA;IAC/H,IAAI,QAAQ,IAAI,CAAC,CAAC,uBAAuB,IAAI,uBAAuB,CAAC;QAAE,OAAO,WAAW,CAAA;IACzF,OAAO,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAa,SAAmC;IAC1E,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/react-game",
3
- "version": "7.5.11",
3
+ "version": "7.5.12",
4
4
  "type": "module",
5
5
  "description": "React components & tools to create a Board Game user interface for Game Park",
6
6
  "author": "Romain Fromi <romain@game-park.com> (https://game-park.com/)",
@@ -25,7 +25,7 @@
25
25
  "@dnd-kit/modifiers": "^9.0.0",
26
26
  "@gamepark/api-types": "^1.0.0",
27
27
  "@gamepark/avataaars": "^3.0.0",
28
- "@gamepark/react-client": "^7.5.1",
28
+ "@gamepark/react-client": "^7.5.2",
29
29
  "dayjs": "^1.11.19",
30
30
  "fscreen": "^1.2.0",
31
31
  "i18next-http-backend": "^3.0.2",