Skip to content

Commit 5862d11

Browse files
committed
More doc about <Proxy>
1 parent c018b06 commit 5862d11

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

docs/HOOKS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ function MyComponent({ activity }: { readonly activity: WebChatActivity }) {
298298
```
299299
<!-- prettier-ignore-end -->
300300

301-
Differences between `useBuildRenderActivityCallback()` and `<ActivityPolymiddlewareProxy>`:
301+
Main differences between `useBuildRenderActivityCallback()` and `<ActivityPolymiddlewareProxy>`:
302302

303303
- `useBuildRenderActivityCallback()` allows precise render control
304304
- Developers can control how the render function is being used and what to do if the polymiddleware decided not to render the activity

docs/MIDDLEWARE.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,24 @@ const polymiddleware = [
132132
];
133133
```
134134

135+
### Using the new `<XXXPolymiddlewareProxy>`
136+
137+
Every type of polymiddleware now comes with its corresponding proxy component. It is the easiest way to render a polymiddleware.
138+
139+
```tsx
140+
const ActivityPolymiddlewareProxy: ComponentType<{ readonly activity: WebChatActivity }>;
141+
```
142+
143+
The following code demonstrates using `<ActivityPolymiddlewareProxy>` to render an activity.
144+
145+
<!-- prettier-ignore-start -->
146+
```tsx
147+
function MyComponent({ activity }: { readonly activity: WebChatActivity }) {
148+
return <ActivityPolymiddlewareProxy activity={activity} />;
149+
}
150+
```
151+
<!-- prettier-ignore-end -->
152+
135153
### Mixing polymiddleware with legacy middleware
136154

137155
> Notes: legacy middleware is deprecated and will be removed on or after 2027-08-16.
@@ -240,3 +258,12 @@ Special polymiddleware factory functions such as `createActivityPolymiddlewareFr
240258
Polymiddleware enforces immutability of requests, which differs from the behavior of legacy middleware.
241259
242260
When multiple legacy middleware are passed as an array to `createActivityPolymiddlewareFromLegacy()`, they are combined into a single polymiddleware. This allows requests to be modified between legacy middleware, provided they are part of the array.
261+
262+
### When to use `useBuildRenderXXXCallback()` vs. `<XXXPolymiddlewareProxy>`?
263+
264+
Their main differences:
265+
266+
- `useBuildRenderXXXCallback()` allows precise render control
267+
- Developers can control how the render function is being used and what to do if the polymiddleware decided not to render the activity
268+
- `<XXXPolymiddlewareProxy>` always render an element
269+
- If the polymiddleware decided not to render, the proxy will still render an empty/headless element (returning `false`)

0 commit comments

Comments
 (0)