@salesforce/ui-bundle-template-app-react-template-b2e 1.123.0 → 1.127.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/CHANGELOG.md CHANGED
@@ -3,6 +3,46 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.127.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.126.0...v1.127.0) (2026-04-22)
7
+
8
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
9
+
10
+
11
+
12
+
13
+
14
+ # [1.126.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.125.1...v1.126.0) (2026-04-22)
15
+
16
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
17
+
18
+
19
+
20
+
21
+
22
+ ## [1.125.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.125.0...v1.125.1) (2026-04-16)
23
+
24
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
25
+
26
+
27
+
28
+
29
+
30
+ # [1.125.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.124.0...v1.125.0) (2026-04-15)
31
+
32
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
33
+
34
+
35
+
36
+
37
+
38
+ # [1.124.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.123.0...v1.124.0) (2026-04-15)
39
+
40
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
41
+
42
+
43
+
44
+
45
+
6
46
  # [1.123.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.122.2...v1.123.0) (2026-04-13)
7
47
 
8
48
 
@@ -18,8 +18,8 @@
18
18
  "graphql:schema": "node scripts/get-graphql-schema.mjs"
19
19
  },
20
20
  "dependencies": {
21
- "@salesforce/sdk-data": "^1.123.0",
22
- "@salesforce/ui-bundle": "^1.123.0",
21
+ "@salesforce/sdk-data": "^1.127.0",
22
+ "@salesforce/ui-bundle": "^1.127.0",
23
23
  "@tailwindcss/vite": "^4.1.17",
24
24
  "class-variance-authority": "^0.7.1",
25
25
  "clsx": "^2.1.1",
@@ -45,7 +45,7 @@
45
45
  "@graphql-eslint/eslint-plugin": "^4.1.0",
46
46
  "@graphql-tools/utils": "^11.0.0",
47
47
  "@playwright/test": "^1.49.0",
48
- "@salesforce/vite-plugin-ui-bundle": "^1.123.0",
48
+ "@salesforce/vite-plugin-ui-bundle": "^1.127.0",
49
49
  "@testing-library/jest-dom": "^6.6.3",
50
50
  "@testing-library/react": "^16.1.0",
51
51
  "@testing-library/user-event": "^14.5.2",
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from "react";
1
+ import { useEffect, useRef, useState } from "react";
2
2
 
3
3
  interface UseAsyncDataResult<T> {
4
4
  data: T | null;
@@ -23,17 +23,18 @@ export function useAsyncData<T>(
23
23
  const [loading, setLoading] = useState(true);
24
24
  const [error, setError] = useState<string | null>(null);
25
25
 
26
- // Re-create the fetcher reference only when deps change.
27
- // eslint-disable-next-line react-hooks/exhaustive-deps --- deps are explicitly managed by the caller
28
- const memoizedFetcher = useCallback(fetcher, deps);
26
+ const fetcherRef = useRef(fetcher);
27
+ useEffect(() => {
28
+ fetcherRef.current = fetcher;
29
+ });
29
30
 
30
31
  useEffect(() => {
31
- // Guard against setting state after unmount or dep change.
32
32
  let cancelled = false;
33
33
  setLoading(true);
34
34
  setError(null);
35
35
 
36
- memoizedFetcher()
36
+ fetcherRef
37
+ .current()
37
38
  .then((result) => {
38
39
  if (!cancelled) setData(result);
39
40
  })
@@ -48,7 +49,8 @@ export function useAsyncData<T>(
48
49
  return () => {
49
50
  cancelled = true;
50
51
  };
51
- }, [memoizedFetcher]);
52
+ // eslint-disable-next-line react-hooks/exhaustive-deps --- deps are explicitly managed by the caller
53
+ }, deps);
52
54
 
53
55
  return { data, loading, error };
54
56
  }
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useState } from "react";
1
+ import { useEffect, useRef, useState } from "react";
2
2
 
3
3
  interface UseAsyncDataResult<T> {
4
4
  data: T | null;
@@ -139,8 +139,10 @@ export function useCachedAsyncData<T>(
139
139
  const [loading, setLoading] = useState(!cached);
140
140
  const [error, setError] = useState<string | null>(null);
141
141
 
142
- // eslint-disable-next-line react-hooks/exhaustive-deps --- deps are explicitly managed by the caller
143
- const memoizedFetcher = useCallback(fetcher, deps);
142
+ const fetcherRef = useRef(fetcher);
143
+ useEffect(() => {
144
+ fetcherRef.current = fetcher;
145
+ });
144
146
 
145
147
  useEffect(() => {
146
148
  // Re-check the cache inside the effect because deps may have changed
@@ -158,7 +160,8 @@ export function useCachedAsyncData<T>(
158
160
  setLoading(true);
159
161
  setError(null);
160
162
 
161
- memoizedFetcher()
163
+ fetcherRef
164
+ .current()
162
165
  .then((result) => {
163
166
  if (!cancelled) {
164
167
  setEntry(cacheKey, result, maxSize);
@@ -178,7 +181,8 @@ export function useCachedAsyncData<T>(
178
181
  return () => {
179
182
  cancelled = true;
180
183
  };
181
- }, [memoizedFetcher, cacheKey, ttl, maxSize]);
184
+ // eslint-disable-next-line react-hooks/exhaustive-deps --- deps are explicitly managed by the caller
185
+ }, [...deps, cacheKey, ttl, maxSize]);
182
186
 
183
187
  return { data, loading, error };
184
188
  }
@@ -113,7 +113,9 @@ export function useObjectSearchParams<TFilter, TOrderBy>(
113
113
  // Snapshot ref — lets callbacks read the latest state without being
114
114
  // recreated on every render (avoids infinite useCallback chains).
115
115
  const stateRef = useRef({ filters, sort, pageSize, pageIndex });
116
- stateRef.current = { filters, sort, pageSize, pageIndex };
116
+ useEffect(() => {
117
+ stateRef.current = { filters, sort, pageSize, pageIndex };
118
+ });
117
119
 
118
120
  // Any filter/sort change resets pagination to the first page.
119
121
  const resetPagination = useCallback(() => {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@salesforce/webapp-template-base-sfdx-project-experimental",
3
- "version": "1.123.0",
3
+ "version": "1.127.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@salesforce/webapp-template-base-sfdx-project-experimental",
9
- "version": "1.123.0",
9
+ "version": "1.127.0",
10
10
  "license": "SEE LICENSE IN LICENSE.txt",
11
11
  "devDependencies": {
12
12
  "@lwc/eslint-plugin-lwc": "^3.3.0",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
3
- "version": "1.123.0",
3
+ "version": "1.127.0",
4
4
  "description": "Base SFDX project template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "publishConfig": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-app-react-template-b2e",
3
- "version": "1.123.0",
3
+ "version": "1.127.0",
4
4
  "description": "Salesforce React internal app template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "",