fix: scope use-propagate to a single Web Chat instance #5248
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changelog Entry
use-propagate
to individual Web Chat instances to prevent interference between multiple instances, in PR #5248, by @OEvgenyDescription
This PR addresses an issue where multiple Web Chat instances on the same page could interfere with each other due to shared
use-propagate
hook listeners. By introducing scopes for these hooks, we ensure that each Web Chat instance operates independently.Design
This design decision encapsulates the scoping logic within the Web Chat's core structure, providing isolation for multiple instances while keeping the public API unchanged. The scopes were added to the
ComposerCoreUI
component specifically, as they are UI-related.This placement allows the Composer component to be used as before without exposing scope components, maintaining backwards compatibility. We don't expose the scope components externally due to the lack of current use cases.
Specific Changes
use-propagate
to version0.2.0-main.fb24772
FocusSendBoxScope
andScrollRelativeTranscriptScope
toComposer
sendBoxFocus.ts
andtranscriptScrollRelative.ts
to export scope componentspackage.json
andpackage-lock.json
-
CHANGELOG.md
I have updated documentationReview Checklist
Accessibility reviewed (tab order, content readability, alt text, color contrast)Browser and platform compatibilities reviewedCSS styles reviewed (minimal rules, noz-index
)Documents reviewed (docs, samples, live demo)Internationalization reviewed (strings, unit formatting)package.json
andpackage-lock.json
reviewedSecurity reviewed (no data URIs, check for nonce leak)