@salesforce/ui-bundle-template-app-react-template-b2e 12.5.6 → 12.5.7
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 +8 -0
- package/dist/force-app/main/default/uiBundles/reactinternalapp/package.json +4 -4
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/appLayout.tsx +1 -1
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/pages/AccountObjectDetailPage.tsx +19 -13
- 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,14 @@
|
|
|
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
|
+
## [12.5.7](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.6...v12.5.7) (2026-09-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [12.5.6](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.5...v12.5.6) (2026-09-11)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"graphql:schema": "node scripts/get-graphql-schema.mjs"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@salesforce/platform-sdk": "^12.5.
|
|
23
|
-
"@salesforce/ui-bundle": "^12.5.
|
|
22
|
+
"@salesforce/platform-sdk": "^12.5.7",
|
|
23
|
+
"@salesforce/ui-bundle": "^12.5.7",
|
|
24
24
|
"@tailwindcss/vite": "^4.1.17",
|
|
25
25
|
"class-variance-authority": "^0.7.1",
|
|
26
26
|
"clsx": "^2.1.1",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@graphql-eslint/eslint-plugin": "^4.1.0",
|
|
47
47
|
"@graphql-tools/utils": "^11.0.0",
|
|
48
48
|
"@playwright/test": "^1.49.0",
|
|
49
|
-
"@salesforce/graphiti": "^12.5.
|
|
50
|
-
"@salesforce/vite-plugin-ui-bundle": "^12.5.
|
|
49
|
+
"@salesforce/graphiti": "^12.5.7",
|
|
50
|
+
"@salesforce/vite-plugin-ui-bundle": "^12.5.7",
|
|
51
51
|
"@testing-library/jest-dom": "^6.6.3",
|
|
52
52
|
"@testing-library/react": "^16.1.0",
|
|
53
53
|
"@testing-library/user-event": "^14.5.2",
|
|
@@ -13,7 +13,7 @@ export default function AppLayout() {
|
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
if (previousPathname.current !== null && previousPathname.current !== location.pathname) {
|
|
15
15
|
const wrapper = outletWrapperRef.current;
|
|
16
|
-
const target = wrapper?.querySelector<HTMLElement>("h1
|
|
16
|
+
const target = wrapper?.querySelector<HTMLElement>("h1");
|
|
17
17
|
if (target) {
|
|
18
18
|
if (!target.hasAttribute("tabindex")) target.setAttribute("tabindex", "-1");
|
|
19
19
|
target.focus();
|
package/dist/force-app/main/default/uiBundles/reactinternalapp/src/pages/AccountObjectDetailPage.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
1
|
+
import { useEffect, useRef, useState } from "react";
|
|
2
2
|
import { useParams, useNavigate } from "react-router";
|
|
3
3
|
import { createDataSDK } from "@salesforce/platform-sdk";
|
|
4
4
|
import { AlertCircle, ChevronDown, ChevronRight, FileQuestion } from "lucide-react";
|
|
@@ -76,6 +76,7 @@ async function fetchAccountDetail(recordId: string): Promise<AccountNode | null
|
|
|
76
76
|
export default function AccountObjectDetail() {
|
|
77
77
|
const { recordId } = useParams();
|
|
78
78
|
const navigate = useNavigate();
|
|
79
|
+
const mainRef = useRef<HTMLElement>(null);
|
|
79
80
|
|
|
80
81
|
const {
|
|
81
82
|
data: account,
|
|
@@ -95,18 +96,23 @@ export default function AccountObjectDetail() {
|
|
|
95
96
|
document.title = pageTitle;
|
|
96
97
|
}, [pageTitle]);
|
|
97
98
|
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
if (loading) return;
|
|
101
|
+
const heading = mainRef.current?.querySelector<HTMLElement>("h1");
|
|
102
|
+
if (heading) {
|
|
103
|
+
if (!heading.hasAttribute("tabindex")) heading.setAttribute("tabindex", "-1");
|
|
104
|
+
heading.focus();
|
|
105
|
+
}
|
|
106
|
+
}, [loading, error, account, recordId]);
|
|
107
|
+
|
|
98
108
|
return (
|
|
99
|
-
<main className="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
|
100
|
-
|
|
109
|
+
<main ref={mainRef} className="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
|
110
|
+
<div role="status" aria-live="polite" className="sr-only">
|
|
111
|
+
{loading ? "Loading account" : ""}
|
|
112
|
+
</div>
|
|
101
113
|
{loading && <AccountDetailSkeleton />}
|
|
102
|
-
|
|
103
|
-
{/* Error state */}
|
|
104
114
|
{error && <AccountDetailError onBack={() => navigate(-1)} />}
|
|
105
|
-
|
|
106
|
-
{/* Not found state */}
|
|
107
115
|
{!loading && !error && !account && <AccountDetailNotFound onBack={() => navigate(-1)} />}
|
|
108
|
-
|
|
109
|
-
{/* Content */}
|
|
110
116
|
{!loading && !error && account && <AccountDetailContent account={account} />}
|
|
111
117
|
</main>
|
|
112
118
|
);
|
|
@@ -261,7 +267,8 @@ function Section({ title, children }: { title: string; children: React.ReactNode
|
|
|
261
267
|
function AccountDetailError({ onBack }: { onBack: () => void }) {
|
|
262
268
|
return (
|
|
263
269
|
<>
|
|
264
|
-
|
|
270
|
+
{/* Alert hardcodes role="alert"; override so the h1-focus effect below is the only announcement path (WCAG 4.1.3) */}
|
|
271
|
+
<Alert variant="destructive" role={undefined}>
|
|
265
272
|
<AlertCircle aria-hidden="true" />
|
|
266
273
|
<AlertTitle>
|
|
267
274
|
<h1>Failed to load account</h1>
|
|
@@ -284,7 +291,7 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
|
|
|
284
291
|
|
|
285
292
|
function AccountDetailNotFound({ onBack }: { onBack: () => void }) {
|
|
286
293
|
return (
|
|
287
|
-
<Card
|
|
294
|
+
<Card>
|
|
288
295
|
<CardContent className="flex flex-col items-center justify-center py-16 text-center">
|
|
289
296
|
<FileQuestion aria-hidden="true" className="size-12 text-muted-foreground mb-4" />
|
|
290
297
|
<h1 className="text-lg font-semibold mb-1">Account not found</h1>
|
|
@@ -301,8 +308,7 @@ function AccountDetailNotFound({ onBack }: { onBack: () => void }) {
|
|
|
301
308
|
|
|
302
309
|
function AccountDetailSkeleton() {
|
|
303
310
|
return (
|
|
304
|
-
<div
|
|
305
|
-
<span className="sr-only">Loading account…</span>
|
|
311
|
+
<div>
|
|
306
312
|
<Skeleton className="h-8 w-56 mb-4" />
|
|
307
313
|
|
|
308
314
|
<Card>
|
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/ui-bundle-template-base-sfdx-project",
|
|
3
|
-
"version": "12.5.
|
|
3
|
+
"version": "12.5.7",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@salesforce/ui-bundle-template-base-sfdx-project",
|
|
9
|
-
"version": "12.5.
|
|
9
|
+
"version": "12.5.7",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fast-xml-parser": "^5.9.3",
|
package/dist/package.json
CHANGED