@salesforce/webapp-template-feature-react-authentication-experimental 1.103.5 → 1.103.6
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/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +38 -113
- package/dist/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/docs/embed-examples.md +40 -116
- package/dist/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/docs/troubleshooting.md +31 -22
- package/dist/CHANGELOG.md +8 -0
- package/dist/package.json +1 -1
- package/package.json +2 -2
package/dist/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md
CHANGED
|
@@ -1,62 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feature-react-agentforce-conversation-client-embedded-agent
|
|
3
|
-
description: Embed an Agentforce conversation client (chat UI) into a React web application. Use when the user wants to add
|
|
3
|
+
description: Embed an Agentforce conversation client (chat UI) into a React web application using the AgentforceConversationClient component. Use when the user wants to add or integrate a chat widget, chatbot, conversation client, agent chat, or conversational interface in a React app, or when they mention Agentforce chat, Agentforce widget, employee agent, travel agent, HR agent, or embedding a Salesforce agent. ALWAYS use this skill instead of building a chat UI from scratch. NEVER generate custom chat components, use third-party chat libraries, or implement chat with WebSockets or REST APIs. Do NOT use for Lightning Web Components (LWC), non-React frameworks.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Embedded Agentforce chat (
|
|
6
|
+
# Embedded Agentforce chat (flat-prop API)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Use this workflow whenever the user wants add or update Agentforce chat in React.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## 1) Get agent id first
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Ask for the Salesforce agent id (18-char id starting with `0Xx`). Do not proceed without it.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Placeholder convention for all examples in this file:
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- Use third-party chat libraries (e.g. `react-chat-widget`, `stream-chat`, `chatscope`, or similar)
|
|
18
|
-
- Create WebSocket, polling, or REST-based chat implementations
|
|
19
|
-
- Generate custom HTML/CSS chat UIs
|
|
20
|
-
- Write a wrapper around `embedAgentforceClient` directly — always use the provided React component
|
|
16
|
+
`<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />`
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## CRITICAL: Agent ID is required
|
|
25
|
-
|
|
26
|
-
The Agentforce Conversation Client **will not work** without an `agentId`. There is no default agent — the component renders nothing and silently fails if `agentId` is missing. **Always ask the user for their agent ID before writing any code.**
|
|
27
|
-
|
|
28
|
-
> **Before proceeding:** Ask the user for their Salesforce agent ID (18-character record ID starting with `0Xx`). If they do not have one, direct them to **Setup → Agents** in their Salesforce org to find or create one. Do not generate code without an `agentId`.
|
|
29
|
-
|
|
30
|
-
## 1. Collect the agent ID
|
|
31
|
-
|
|
32
|
-
Ask the user:
|
|
33
|
-
|
|
34
|
-
- "What is your Salesforce agent ID? (You can find it in Setup → Agents → select an agent → copy the ID from the URL. It's an 18-character ID starting with `0Xx`.)"
|
|
35
|
-
|
|
36
|
-
If the user does not provide one:
|
|
37
|
-
|
|
38
|
-
- Explain that the conversation client **requires** an agent ID and will not function without it.
|
|
39
|
-
- Direct them to **Setup → Agents** in their org.
|
|
40
|
-
- Do **not** proceed to generate the embed code until an agent ID is provided.
|
|
41
|
-
|
|
42
|
-
## 2. Install the package
|
|
18
|
+
## 2) Install package
|
|
43
19
|
|
|
44
20
|
```bash
|
|
45
21
|
npm install @salesforce/webapp-template-feature-react-agentforce-conversation-client-experimental
|
|
46
22
|
```
|
|
47
23
|
|
|
48
|
-
|
|
24
|
+
## 3) Use component in app layout
|
|
49
25
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Use the `AgentforceConversationClient` React component. It resolves auth automatically:
|
|
53
|
-
|
|
54
|
-
- **Dev (localhost)**: fetches `frontdoorUrl` from `/__lo/frontdoor`
|
|
55
|
-
- **Prod (hosted in org)**: uses `salesforceOrigin` from `window.location.origin`
|
|
56
|
-
|
|
57
|
-
## 4. Embed in the layout
|
|
58
|
-
|
|
59
|
-
Render `<AgentforceConversationClient />` in the app layout so the chat client loads globally. Keep it alongside the existing layout (do not replace the page shell). **Always pass `agentId`.**
|
|
26
|
+
Render a single instance in the shared layout (alongside `<Outlet />`).
|
|
60
27
|
|
|
61
28
|
```tsx
|
|
62
29
|
import { Outlet } from "react-router";
|
|
@@ -66,101 +33,59 @@ export default function AppLayout() {
|
|
|
66
33
|
return (
|
|
67
34
|
<>
|
|
68
35
|
<Outlet />
|
|
69
|
-
<AgentforceConversationClient
|
|
70
|
-
agentforceClientConfig={{
|
|
71
|
-
agentId: "0Xx000000000000AAA",
|
|
72
|
-
}}
|
|
73
|
-
/>
|
|
36
|
+
<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
|
|
74
37
|
</>
|
|
75
38
|
);
|
|
76
39
|
}
|
|
77
40
|
```
|
|
78
41
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
## 5. Configure rendering and theming (optional)
|
|
82
|
-
|
|
83
|
-
Pass additional options via the `agentforceClientConfig` prop:
|
|
84
|
-
|
|
85
|
-
| Option | Purpose | Required |
|
|
86
|
-
| ---------------------------------- | -------------------------------------------------------------------------------------------------------- | -------- |
|
|
87
|
-
| `agentId` | The agent to load — **required, will not work without it** | **Yes** |
|
|
88
|
-
| `renderingConfig.mode` | `"floating"` (default) or `"inline"` | No |
|
|
89
|
-
| `renderingConfig.width` / `height` | Inline dimensions (number for px, string for CSS) | No |
|
|
90
|
-
| `renderingConfig.headerEnabled` | Show or hide the chat header bar. Defaults to `false` (header hidden). Set to `true` to show the header. | No |
|
|
91
|
-
| `styleTokens` | Theme colors and style overrides | No |
|
|
92
|
-
|
|
93
|
-
See [embed-examples.md](docs/embed-examples.md) for complete examples of each mode.
|
|
42
|
+
## 4) Flat props only
|
|
94
43
|
|
|
95
|
-
|
|
44
|
+
This package uses a flat prop API. Use these props directly on the component:
|
|
96
45
|
|
|
97
|
-
|
|
46
|
+
- `agentId` (required in practice)
|
|
47
|
+
- `inline` (`true` = inline, omitted/false = floating)
|
|
48
|
+
- `headerEnabled` (defaults to true for floating; actual use case for inline mode)
|
|
49
|
+
- `width`, `height` (actual work is when inline mode is true)
|
|
50
|
+
- `styleTokens`
|
|
51
|
+
- `salesforceOrigin`, `frontdoorUrl`
|
|
98
52
|
|
|
99
|
-
|
|
100
|
-
2. **Trusted domains:** The org must allow `localhost:<PORT>` in **Trusted Domains for Inline Frames** (**Setup → Session Settings → Trusted Domains for Inline Frames**). Required for local development.
|
|
101
|
-
3. **First-party cookies disabled:** **"Require first party use of Salesforce cookies"** must be **unchecked/disabled** in **Setup → My Domain**. If this setting is enabled, the embedded conversation client will fail to authenticate and will not load.
|
|
102
|
-
|
|
103
|
-
## Quick reference: rendering modes
|
|
104
|
-
|
|
105
|
-
### Floating (default rendering mode)
|
|
106
|
-
|
|
107
|
-
A persistent chat widget overlay pinned to the bottom-right corner. Floating is the default rendering mode — but `agentId` is still required.
|
|
53
|
+
## 5) Inline mode example
|
|
108
54
|
|
|
109
55
|
```tsx
|
|
110
56
|
<AgentforceConversationClient
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
57
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
58
|
+
inline
|
|
59
|
+
width={420}
|
|
60
|
+
height={600}
|
|
114
61
|
/>
|
|
115
62
|
```
|
|
116
63
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
The chat renders within the page layout at a specific size.
|
|
64
|
+
## 6) Theming example
|
|
120
65
|
|
|
121
66
|
```tsx
|
|
122
67
|
<AgentforceConversationClient
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
68
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
69
|
+
styleTokens={{
|
|
70
|
+
headerBlockBackground: "#0176d3",
|
|
71
|
+
headerBlockTextColor: "#ffffff",
|
|
126
72
|
}}
|
|
127
73
|
/>
|
|
128
74
|
```
|
|
129
75
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
By default the header is hidden. To show the chat header bar (with agent name and controls), set `headerEnabled: true`:
|
|
76
|
+
## 7) Do not do this
|
|
133
77
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
agentId: "0Xx000000000000AAA",
|
|
138
|
-
renderingConfig: {
|
|
139
|
-
mode: "inline",
|
|
140
|
-
width: 420,
|
|
141
|
-
height: 600
|
|
142
|
-
headerEnabled: true,
|
|
143
|
-
},
|
|
144
|
-
}}
|
|
145
|
-
/>
|
|
146
|
-
```
|
|
78
|
+
- Do not create custom chat UIs.
|
|
79
|
+
- Do not use third-party chat libraries.
|
|
80
|
+
- Do not call `embedAgentforceClient` directly from @salesforce/agentforce-conversation-client.
|
|
147
81
|
|
|
148
|
-
|
|
82
|
+
## 8) Prerequisites
|
|
149
83
|
|
|
150
|
-
|
|
84
|
+
Ensure org setup is valid:
|
|
151
85
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
agentId: "0Xx000000000000AAA",
|
|
156
|
-
styleTokens: {
|
|
157
|
-
headerBlockBackground: "#0176d3",
|
|
158
|
-
headerBlockTextColor: "#ffffff",
|
|
159
|
-
messageBlockInboundColor: "#0176d3",
|
|
160
|
-
},
|
|
161
|
-
}}
|
|
162
|
-
/>
|
|
163
|
-
```
|
|
86
|
+
1. Agent is active and deployed to the correct channel.
|
|
87
|
+
2. `localhost:<PORT>` is trusted for inline frames in local dev.
|
|
88
|
+
3. First-party Salesforce cookie restriction is disabled when required for embedding.
|
|
164
89
|
|
|
165
90
|
## Troubleshooting
|
|
166
91
|
|
|
@@ -1,90 +1,60 @@
|
|
|
1
|
-
# Embed examples
|
|
1
|
+
# Embed examples (flat-prop API)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All examples use `AgentforceConversationClient` with flat props.
|
|
4
4
|
|
|
5
|
-
>
|
|
5
|
+
> `agentId` is required in practice. Use this placeholder pattern in examples: `"<USER_AGENT_ID_18_CHAR_0Xx...>"`.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## Floating mode (default
|
|
10
|
-
|
|
11
|
-
A floating chat widget appears in the bottom-right corner. It starts minimized and expands when the user clicks it. Floating is the default rendering mode — no `renderingConfig` is needed — but `agentId` is always required.
|
|
12
|
-
|
|
13
|
-
### Minimal
|
|
9
|
+
## Floating mode (default)
|
|
14
10
|
|
|
15
11
|
```tsx
|
|
16
|
-
<AgentforceConversationClient
|
|
17
|
-
agentforceClientConfig={{
|
|
18
|
-
agentId: "0Xx000000000000AAA",
|
|
19
|
-
}}
|
|
20
|
-
/>
|
|
12
|
+
<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
|
|
21
13
|
```
|
|
22
14
|
|
|
23
|
-
|
|
15
|
+
## Explicit floating
|
|
24
16
|
|
|
25
17
|
```tsx
|
|
26
|
-
<AgentforceConversationClient
|
|
27
|
-
agentforceClientConfig={{
|
|
28
|
-
agentId: "0Xx000000000000AAA",
|
|
29
|
-
renderingConfig: { mode: "floating" },
|
|
30
|
-
}}
|
|
31
|
-
/>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Floating with theming
|
|
35
|
-
|
|
36
|
-
```tsx
|
|
37
|
-
<AgentforceConversationClient
|
|
38
|
-
agentforceClientConfig={{
|
|
39
|
-
agentId: "0Xx000000000000AAA",
|
|
40
|
-
renderingConfig: { mode: "floating" },
|
|
41
|
-
styleTokens: {
|
|
42
|
-
headerBlockBackground: "#032D60",
|
|
43
|
-
headerBlockTextColor: "#ffffff",
|
|
44
|
-
},
|
|
45
|
-
}}
|
|
46
|
-
/>
|
|
18
|
+
<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
|
|
47
19
|
```
|
|
48
20
|
|
|
49
21
|
---
|
|
50
22
|
|
|
51
23
|
## Inline mode
|
|
52
24
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
### Fixed pixel dimensions
|
|
25
|
+
### Fixed pixels
|
|
56
26
|
|
|
57
27
|
```tsx
|
|
58
28
|
<AgentforceConversationClient
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
29
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
30
|
+
inline
|
|
31
|
+
width={420}
|
|
32
|
+
height={600}
|
|
63
33
|
/>
|
|
64
34
|
```
|
|
65
35
|
|
|
66
|
-
### CSS string
|
|
36
|
+
### CSS string size
|
|
67
37
|
|
|
68
38
|
```tsx
|
|
69
39
|
<AgentforceConversationClient
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
40
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
41
|
+
inline
|
|
42
|
+
width="100%"
|
|
43
|
+
height="80vh"
|
|
74
44
|
/>
|
|
75
45
|
```
|
|
76
46
|
|
|
77
|
-
### Inline
|
|
47
|
+
### Inline sidebar
|
|
78
48
|
|
|
79
49
|
```tsx
|
|
80
50
|
<div style={{ display: "flex", height: "100vh" }}>
|
|
81
51
|
<main style={{ flex: 1 }}>{/* App content */}</main>
|
|
82
52
|
<aside style={{ width: 400 }}>
|
|
83
53
|
<AgentforceConversationClient
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
54
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
55
|
+
inline
|
|
56
|
+
width="100%"
|
|
57
|
+
height="100%"
|
|
88
58
|
/>
|
|
89
59
|
</aside>
|
|
90
60
|
</div>
|
|
@@ -94,58 +64,37 @@ The chat renders inside the parent container at a specific size. Use this when t
|
|
|
94
64
|
|
|
95
65
|
## Theming
|
|
96
66
|
|
|
97
|
-
Use `styleTokens` to customize colors. Tokens are passed directly to the Agentforce client.
|
|
98
|
-
|
|
99
|
-
### Brand-colored header
|
|
100
|
-
|
|
101
67
|
```tsx
|
|
102
68
|
<AgentforceConversationClient
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
},
|
|
69
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
70
|
+
styleTokens={{
|
|
71
|
+
headerBlockBackground: "#0176d3",
|
|
72
|
+
headerBlockTextColor: "#ffffff",
|
|
73
|
+
messageBlockInboundColor: "#0176d3",
|
|
109
74
|
}}
|
|
110
75
|
/>
|
|
111
76
|
```
|
|
112
77
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
```tsx
|
|
116
|
-
<AgentforceConversationClient
|
|
117
|
-
agentforceClientConfig={{
|
|
118
|
-
agentId: "0Xx000000000000AAA",
|
|
119
|
-
styleTokens: {
|
|
120
|
-
headerBlockBackground: "#0176d3",
|
|
121
|
-
headerBlockTextColor: "#ffffff",
|
|
122
|
-
messageBlockInboundColor: "#0176d3",
|
|
123
|
-
},
|
|
124
|
-
}}
|
|
125
|
-
/>
|
|
126
|
-
```
|
|
78
|
+
---
|
|
127
79
|
|
|
128
|
-
|
|
80
|
+
## Inline with header enabled
|
|
129
81
|
|
|
130
82
|
```tsx
|
|
131
83
|
<AgentforceConversationClient
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
messageBlockInboundColor: "#16213e",
|
|
138
|
-
},
|
|
139
|
-
}}
|
|
84
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
85
|
+
inline
|
|
86
|
+
width={420}
|
|
87
|
+
height={600}
|
|
88
|
+
headerEnabled
|
|
140
89
|
/>
|
|
141
90
|
```
|
|
142
91
|
|
|
92
|
+
`headerEnabled` defaults to `true` for floating mode, and you can use it in inline mode to add/remove the header.
|
|
93
|
+
|
|
143
94
|
---
|
|
144
95
|
|
|
145
96
|
## Full layout example
|
|
146
97
|
|
|
147
|
-
Shows the recommended pattern: agent ID passed directly, single render in the app layout.
|
|
148
|
-
|
|
149
98
|
```tsx
|
|
150
99
|
import { Outlet } from "react-router";
|
|
151
100
|
import { AgentforceConversationClient } from "@salesforce/webapp-template-feature-react-agentforce-conversation-client-experimental";
|
|
@@ -155,38 +104,13 @@ export default function AppLayout() {
|
|
|
155
104
|
<>
|
|
156
105
|
<Outlet />
|
|
157
106
|
<AgentforceConversationClient
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
headerBlockTextColor: "#ffffff",
|
|
163
|
-
},
|
|
107
|
+
agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
|
|
108
|
+
styleTokens={{
|
|
109
|
+
headerBlockBackground: "#0176d3",
|
|
110
|
+
headerBlockTextColor: "#ffffff",
|
|
164
111
|
}}
|
|
165
112
|
/>
|
|
166
113
|
</>
|
|
167
114
|
);
|
|
168
115
|
}
|
|
169
116
|
```
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Using the low-level `embedAgentforceClient` API
|
|
174
|
-
|
|
175
|
-
The React component wraps `embedAgentforceClient`. If you need the raw API (e.g. in a non-React context), the config shape is the same — `agentId` is still required:
|
|
176
|
-
|
|
177
|
-
```ts
|
|
178
|
-
import { embedAgentforceClient } from "@salesforce/agentforce-conversation-client";
|
|
179
|
-
|
|
180
|
-
const { loApp, chatClientComponent } = embedAgentforceClient({
|
|
181
|
-
container: "#agentforce-container",
|
|
182
|
-
salesforceOrigin: "https://myorg.my.salesforce.com",
|
|
183
|
-
agentforceClientConfig: {
|
|
184
|
-
agentId: "0Xx000000000000AAA",
|
|
185
|
-
renderingConfig: { mode: "floating" },
|
|
186
|
-
styleTokens: {
|
|
187
|
-
headerBlockBackground: "#0176d3",
|
|
188
|
-
headerBlockTextColor: "#ffffff",
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
});
|
|
192
|
-
```
|
|
@@ -4,48 +4,57 @@ Common issues when using the Agentforce Conversation Client.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Component throws "requires agentId"
|
|
8
8
|
|
|
9
|
-
**Cause:**
|
|
9
|
+
**Cause:** `agentId` was not passed.
|
|
10
10
|
|
|
11
|
-
**Solution:**
|
|
11
|
+
**Solution:** Pass `agentId` directly as a flat prop:
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<AgentforceConversationClient agentId="0Xx000000000000AAA" />
|
|
15
|
+
```
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
2. Confirm the ID is correct (18-character Salesforce record ID, starts with `0Xx`)
|
|
15
|
-
3. Check that the agent exists and is **Active** in **Setup → Agents**
|
|
17
|
+
---
|
|
16
18
|
|
|
17
|
-
### Chat
|
|
19
|
+
### Chat widget does not appear
|
|
18
20
|
|
|
19
|
-
**Cause:**
|
|
21
|
+
**Cause:** Invalid `agentId` or inactive agent.
|
|
20
22
|
|
|
21
23
|
**Solution:**
|
|
22
24
|
|
|
23
|
-
1.
|
|
24
|
-
2.
|
|
25
|
+
1. Confirm the id is correct (18-char Salesforce id, starts with `0Xx`).
|
|
26
|
+
2. Ensure the agent is Active in **Setup → Agents**.
|
|
27
|
+
3. Verify the agent is deployed to the target channel.
|
|
28
|
+
|
|
29
|
+
---
|
|
25
30
|
|
|
26
31
|
### Authentication error on localhost
|
|
27
32
|
|
|
28
|
-
**Cause:** `localhost:<PORT>` is not
|
|
33
|
+
**Cause:** `localhost:<PORT>` is not trusted for inline frames.
|
|
29
34
|
|
|
30
35
|
**Solution:**
|
|
31
36
|
|
|
32
|
-
1. Go to **Setup → Session Settings → Trusted Domains for Inline Frames
|
|
33
|
-
2. Add `localhost:<PORT>` (
|
|
34
|
-
3. Restart the dev server
|
|
37
|
+
1. Go to **Setup → Session Settings → Trusted Domains for Inline Frames**.
|
|
38
|
+
2. Add `localhost:<PORT>` (example: `localhost:3000`).
|
|
39
|
+
3. Restart the dev server.
|
|
40
|
+
|
|
41
|
+
---
|
|
35
42
|
|
|
36
|
-
###
|
|
43
|
+
### Blank iframe / auth session issues
|
|
37
44
|
|
|
38
|
-
**Cause:**
|
|
45
|
+
**Cause:** First-party Salesforce cookie restriction is enabled.
|
|
39
46
|
|
|
40
47
|
**Solution:**
|
|
41
48
|
|
|
42
|
-
1. Go to **Setup → Session Settings
|
|
43
|
-
2. Find **
|
|
44
|
-
3.
|
|
45
|
-
4. Save and reload
|
|
49
|
+
1. Go to **Setup → Session Settings**.
|
|
50
|
+
2. Find **Require first party use of Salesforce cookies**.
|
|
51
|
+
3. Disable it.
|
|
52
|
+
4. Save and reload.
|
|
53
|
+
|
|
54
|
+
---
|
|
46
55
|
|
|
47
56
|
### Multiple chat widgets appear
|
|
48
57
|
|
|
49
|
-
**Cause:**
|
|
58
|
+
**Cause:** Component rendered more than once.
|
|
50
59
|
|
|
51
|
-
**Solution:** Render
|
|
60
|
+
**Solution:** Render one instance in app layout only.
|
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
|
+
## [1.103.6](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.103.5...v1.103.6) (2026-03-17)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [1.103.5](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.103.4...v1.103.5) (2026-03-17)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-feature-react-authentication-experimental",
|
|
3
|
-
"version": "1.103.
|
|
3
|
+
"version": "1.103.6",
|
|
4
4
|
"description": "Authentication feature for web applications",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"clean": "rm -rf dist"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@salesforce/webapp-experimental": "^1.103.
|
|
19
|
+
"@salesforce/webapp-experimental": "^1.103.6",
|
|
20
20
|
"@tanstack/react-form": "^1.27.7",
|
|
21
21
|
"@types/react": "^19.2.7",
|
|
22
22
|
"@types/react-dom": "^19.2.3",
|