@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 +40 -0
- package/dist/force-app/main/default/uiBundles/reactinternalapp/package.json +3 -3
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/features/object-search/hooks/useAsyncData.ts +9 -7
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/features/object-search/hooks/useCachedAsyncData.ts +9 -5
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/features/object-search/hooks/useObjectSearchParams.ts +3 -1
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
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.
|
|
22
|
-
"@salesforce/ui-bundle": "^1.
|
|
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.
|
|
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 {
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
143
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(() => {
|
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-base-sfdx-project-experimental",
|
|
3
|
-
"version": "1.
|
|
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.
|
|
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