@snapdragonsnursery/react-components 1.19.4 → 1.19.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snapdragonsnursery/react-components",
3
- "version": "1.19.4",
3
+ "version": "1.19.5",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,4 +1,10 @@
1
- import React, { useState, useEffect, useRef, useCallback } from "react";
1
+ import React, {
2
+ useState,
3
+ useEffect,
4
+ useRef,
5
+ useCallback,
6
+ useMemo,
7
+ } from "react";
2
8
  import { useMsal } from "@azure/msal-react";
3
9
  import { trackEvent } from "./telemetry";
4
10
 
@@ -25,7 +31,7 @@ const ChildSearchModal = ({
25
31
  showSiteFilter = true, // Whether to show site filter dropdown
26
32
  multiSelect = false, // Enable multiple child selection
27
33
  maxSelections = null, // Maximum number of children that can be selected (null = unlimited)
28
- selectedChildren = [], // Array of already selected children (for multi-select mode)
34
+ selectedChildren, // Array of already selected children (for multi-select mode)
29
35
  // Auth options: provide token directly or a function to fetch it
30
36
  authToken = null,
31
37
  getAccessToken = null,
@@ -60,8 +66,12 @@ const ChildSearchModal = ({
60
66
  });
61
67
 
62
68
  // State for multi-select mode
69
+ const initialSelectedChildren = useMemo(
70
+ () => selectedChildren ?? [],
71
+ [selectedChildren]
72
+ );
63
73
  const [selectedChildrenState, setSelectedChildrenState] = useState(
64
- selectedChildren || []
74
+ initialSelectedChildren
65
75
  );
66
76
 
67
77
  const { instance, accounts } = useMsal();
@@ -281,9 +291,9 @@ const ChildSearchModal = ({
281
291
  // Reset selection when modal opens (for multi-select mode)
282
292
  useEffect(() => {
283
293
  if (isOpen && multiSelect) {
284
- setSelectedChildrenState(selectedChildren || []);
294
+ setSelectedChildrenState(initialSelectedChildren);
285
295
  }
286
- }, [isOpen, multiSelect, selectedChildren]);
296
+ }, [isOpen, multiSelect, initialSelectedChildren]);
287
297
 
288
298
  const handleChildSelect = (child) => {
289
299
  if (multiSelect) {