Skip to content

feat(react-web-sdk): add OptimizedExperience component#301

Draft
Johannes Maximilian Toball (jmtoball) wants to merge 1 commit into
EXA-1489-prototypical-setup-of-sdk-in-ex-o-like-setupfrom
EXA-1489-full-render-abstraction
Draft

feat(react-web-sdk): add OptimizedExperience component#301
Johannes Maximilian Toball (jmtoball) wants to merge 1 commit into
EXA-1489-prototypical-setup-of-sdk-in-ex-o-like-setupfrom
EXA-1489-full-render-abstraction

Conversation

@jmtoball
Copy link
Copy Markdown
Collaborator

Encapsulates the full render pipeline for a personalized Experience tree returned by the XDA personalized read path: tree walk + slot recursion, component dispatch via a consumer-supplied componentMap, design/content prop spreading, and the per-leaf useOptimizedNode ref stamping that NodeViewRuntime needs to fire view events.

Adds one outer wrapper that resolves to the Experience attribution layer so the Experience-level view event fires exactly once regardless of tree size, plus per-leaf dedup so each non-Experience scope (persisted Fragment, etc.) emits at most one event per render.

OptimizationProvider continues to own the global config (clientId, environment, autoTrackNodeInteraction); this component is the per-Experience rendering surface that consumes that context.

Encapsulates the full render pipeline for a personalized Experience tree
returned by the XDA personalized read path: tree walk + slot recursion,
component dispatch via a consumer-supplied componentMap, design/content
prop spreading, and the per-leaf useOptimizedNode ref stamping that
NodeViewRuntime needs to fire view events.

Adds one outer wrapper that resolves to the Experience attribution layer
so the Experience-level view event fires exactly once regardless of tree
size, plus per-leaf dedup so each non-Experience scope (persisted
Fragment, etc.) emits at most one event per render.

OptimizationProvider continues to own the global config (clientId,
environment, autoTrackNodeInteraction); this component is the
per-Experience rendering surface that consumes that context.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant