@salesforce/webapp-template-feature-micro-frontend 1.53.1 → 1.54.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/.a4drules/build-validation.md +1 -1
- package/dist/.a4drules/react.md +1 -1
- package/dist/AGENT.md +1 -1
- package/dist/CHANGELOG.md +19 -0
- package/dist/force-app/main/default/webapplications/feature-micro-frontend/package.json +1 -1
- package/dist/force-app/main/default/webapplications/feature-micro-frontend/src/api/utils/accounts.ts +14 -6
- package/dist/force-app/main/default/webapplications/feature-micro-frontend/src/appLayout.tsx +75 -3
- package/dist/package.json +1 -1
- package/package.json +5 -5
- package/dist/force-app/main/default/webapplications/feature-micro-frontend/package-lock.json +0 -14373
|
@@ -66,7 +66,7 @@ npm run lint # Run ESLint (always available)
|
|
|
66
66
|
|
|
67
67
|
## Key Commands (web app directory)
|
|
68
68
|
```bash
|
|
69
|
-
npm run
|
|
69
|
+
npm run dev # Start development server (vite)
|
|
70
70
|
npm run build # TypeScript + Vite build; check deployment readiness
|
|
71
71
|
npm run lint # Run ESLint
|
|
72
72
|
```
|
package/dist/.a4drules/react.md
CHANGED
|
@@ -33,7 +33,7 @@ The layout file is: `force-app/main/default/webapplications/<appName>/src/appLay
|
|
|
33
33
|
- Main entry component: `force-app/main/default/webapplications/<appName>/src/App.tsx`
|
|
34
34
|
- **Theme/layout shell**: `force-app/main/default/webapplications/<appName>/src/appLayout.tsx` — wraps all routed content (navigation, header, sidebar, outlet). Routes use `<AppLayout />` as the layout element; page content renders inside it via `<Outlet />`. When making UI edits that affect global layout, navigation, header, footer, sidebar, or theme, **you must consider and edit appLayout.tsx** in addition to page or component files; do not only edit individual pages and omit the layout.
|
|
35
35
|
- Running Development Server (from the web app directory):
|
|
36
|
-
- `npm run
|
|
36
|
+
- `npm run dev` — starts the Vite dev server
|
|
37
37
|
- You can generally assume the dev server is already running and don't need to start it.
|
|
38
38
|
- Build (from the web app directory):
|
|
39
39
|
- `npm run build` — TypeScript check + Vite build
|
package/dist/AGENT.md
CHANGED
|
@@ -38,7 +38,7 @@ cd force-app/main/default/webapplications/<appName>
|
|
|
38
38
|
|
|
39
39
|
| Command | Purpose |
|
|
40
40
|
|---------|---------|
|
|
41
|
-
| `npm run
|
|
41
|
+
| `npm run dev` | Start Vite dev server |
|
|
42
42
|
| `npm run build` | TypeScript (`tsc -b`) + Vite build |
|
|
43
43
|
| `npm run lint` | ESLint for the React app |
|
|
44
44
|
| `npm run test` | Vitest |
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
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.54.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.53.2...v1.54.0) (2026-02-25)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.53.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.53.1...v1.53.2) (2026-02-25)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* move ACC from layout embed to route-based page approach ([#156](https://github.com/salesforce-experience-platform-emu/webapps/issues/156)) ([b778f44](https://github.com/salesforce-experience-platform-emu/webapps/commit/b778f44a7897fbf0914d7b1ebb36079c0b2d70fd))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## [1.53.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.53.0...v1.53.1) (2026-02-25)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
package/dist/force-app/main/default/webapplications/feature-micro-frontend/src/api/utils/accounts.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getDataSDK } from '@salesforce/webapp-experimental/api';
|
|
2
2
|
import HIGH_REVENUE_ACCOUNTS_QUERY from './query/highRevenueAccountsQuery.graphql?raw';
|
|
3
3
|
import type {
|
|
4
4
|
GetHighRevenueAccountsQuery,
|
|
@@ -24,10 +24,18 @@ type AccountNode = NonNullable<
|
|
|
24
24
|
export async function getHighRevenueAccounts(
|
|
25
25
|
variables: GetHighRevenueAccountsQueryVariables
|
|
26
26
|
): Promise<(AccountNode | null | undefined)[]> {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
const data = await getDataSDK();
|
|
28
|
+
const response = await data.graphql?.<
|
|
29
|
+
GetHighRevenueAccountsQuery,
|
|
30
|
+
GetHighRevenueAccountsQueryVariables
|
|
31
|
+
>(HIGH_REVENUE_ACCOUNTS_QUERY, variables);
|
|
32
|
+
|
|
33
|
+
if (response?.errors?.length) {
|
|
34
|
+
const errorMessages = response.errors.map(e => e.message).join('; ');
|
|
35
|
+
throw new Error(`GraphQL Error: ${errorMessages}`);
|
|
36
|
+
}
|
|
31
37
|
|
|
32
|
-
return
|
|
38
|
+
return (
|
|
39
|
+
response?.data?.uiapi?.query?.Account?.edges?.map(edge => edge?.node) || []
|
|
40
|
+
);
|
|
33
41
|
}
|
package/dist/force-app/main/default/webapplications/feature-micro-frontend/src/appLayout.tsx
CHANGED
|
@@ -1,10 +1,82 @@
|
|
|
1
|
-
import { Outlet } from 'react-router';
|
|
2
|
-
import
|
|
1
|
+
import { Outlet, Link, useLocation } from 'react-router';
|
|
2
|
+
import { getAllRoutes } from './router-utils';
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
|
|
4
5
|
export default function AppLayout() {
|
|
6
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
7
|
+
const location = useLocation();
|
|
8
|
+
|
|
9
|
+
const isActive = (path: string) => location.pathname === path;
|
|
10
|
+
|
|
11
|
+
const toggleMenu = () => setIsOpen(!isOpen);
|
|
12
|
+
|
|
13
|
+
const navigationRoutes: { path: string; label: string }[] = getAllRoutes()
|
|
14
|
+
.filter(
|
|
15
|
+
route =>
|
|
16
|
+
route.handle?.showInNavigation === true &&
|
|
17
|
+
route.fullPath !== undefined &&
|
|
18
|
+
route.handle?.label !== undefined
|
|
19
|
+
)
|
|
20
|
+
.map(
|
|
21
|
+
route =>
|
|
22
|
+
({
|
|
23
|
+
path: route.fullPath,
|
|
24
|
+
label: route.handle?.label,
|
|
25
|
+
}) as { path: string; label: string }
|
|
26
|
+
);
|
|
27
|
+
|
|
5
28
|
return (
|
|
6
29
|
<>
|
|
7
|
-
<
|
|
30
|
+
<nav className="bg-white border-b border-gray-200">
|
|
31
|
+
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
32
|
+
<div className="flex justify-between items-center h-16">
|
|
33
|
+
<Link to="/" className="text-xl font-semibold text-gray-900">
|
|
34
|
+
React App
|
|
35
|
+
</Link>
|
|
36
|
+
<button
|
|
37
|
+
onClick={toggleMenu}
|
|
38
|
+
className="p-2 rounded-md text-gray-700 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
39
|
+
aria-label="Toggle menu"
|
|
40
|
+
>
|
|
41
|
+
<div className="w-6 h-6 flex flex-col justify-center space-y-1.5">
|
|
42
|
+
<span
|
|
43
|
+
className={`block h-0.5 w-6 bg-current transition-all ${
|
|
44
|
+
isOpen ? 'rotate-45 translate-y-2' : ''
|
|
45
|
+
}`}
|
|
46
|
+
/>
|
|
47
|
+
<span
|
|
48
|
+
className={`block h-0.5 w-6 bg-current transition-all ${isOpen ? 'opacity-0' : ''}`}
|
|
49
|
+
/>
|
|
50
|
+
<span
|
|
51
|
+
className={`block h-0.5 w-6 bg-current transition-all ${
|
|
52
|
+
isOpen ? '-rotate-45 -translate-y-2' : ''
|
|
53
|
+
}`}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
</button>
|
|
57
|
+
</div>
|
|
58
|
+
{isOpen && (
|
|
59
|
+
<div className="pb-4">
|
|
60
|
+
<div className="flex flex-col space-y-2">
|
|
61
|
+
{navigationRoutes.map(item => (
|
|
62
|
+
<Link
|
|
63
|
+
key={item.path}
|
|
64
|
+
to={item.path}
|
|
65
|
+
onClick={() => setIsOpen(false)}
|
|
66
|
+
className={`px-3 py-2 rounded-md text-sm font-medium transition-colors ${
|
|
67
|
+
isActive(item.path)
|
|
68
|
+
? 'bg-blue-100 text-blue-700'
|
|
69
|
+
: 'text-gray-700 hover:bg-gray-100'
|
|
70
|
+
}`}
|
|
71
|
+
>
|
|
72
|
+
{item.label}
|
|
73
|
+
</Link>
|
|
74
|
+
))}
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
)}
|
|
78
|
+
</div>
|
|
79
|
+
</nav>
|
|
8
80
|
<Outlet />
|
|
9
81
|
</>
|
|
10
82
|
);
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-feature-micro-frontend",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.0",
|
|
4
4
|
"description": "Micro Frontend generation feature for Web Applications",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"clean": "rm -rf dist"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@salesforce/micro-frontends-experimental": "^1.
|
|
22
|
-
"@salesforce/webapp-experimental": "^1.
|
|
21
|
+
"@salesforce/micro-frontends-experimental": "^1.54.0",
|
|
22
|
+
"@salesforce/webapp-experimental": "^1.54.0",
|
|
23
23
|
"@types/react": "^19.2.7",
|
|
24
24
|
"@types/react-dom": "^19.2.3",
|
|
25
25
|
"react-dom": "^19.2.1",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"watch": {
|
|
34
34
|
"executor": "@salesforce/webapp-template-cli-experimental:watch-patches"
|
|
35
35
|
},
|
|
36
|
-
"
|
|
36
|
+
"dev": {
|
|
37
37
|
"executor": "@salesforce/webapp-template-cli-experimental:dev-server"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "b48827161c23db20c7e546a857fe8c9f5f560c20"
|
|
42
42
|
}
|