-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ability to customize Web Chat by extending UI without re-implementing existing controls #4539
Add ability to customize Web Chat by extending UI without re-implementing existing controls #4539
Conversation
@dawolff-ms this is really well done! let's connect next week on a thorough review and ensure there are no regressions |
@dawolff-ms this is excellent. I guess you have spent quite some time with Web Chat to gain certain knowledge to create this PR. I am still reading this and digesting the information, here is my reading notes so far:
I will add more thoughts here after I fully read the PR. Thanks for such a high quality PR. |
Thanks! Kudos to you and your team for maintaining such a clean and organized repo - working in it was super straight forward that putting together a PR like this was super easy!
I couldn't agree more, but this seems slightly out of scope for the changes I want to introduce. My goal was to change as little as possible to achieve this feature. If you'd like, I can remove the
I wasn't aware of the headless aspect of the Because of the above I'm ready to revert all changes I made to the Pros:
Cons:
We can always lean on documentation to address the cons, I guess! Let me know what you think. |
@compulim as per our discussion earlier, I've reverted all my changes and just have the exports for Let me know if you see any issues. |
I have added a screenshot. Since our current CI pipeline is broken for forked branches, I am bypassing branch protection. I have run all tests locally, added a new screenshot for the new test. |
Changelog Entry
Description
Adding the ability to extend the default UI for Web Chat without having to reimplement already existing controls. For example, our team wishes to add our own custom component betweeen the connectivity status and the send box. Currently, the only way to do this is to recompose the UI with a custom send box, which doesn't make much sense since we don't have a desire to change the send box functionality.
Design
The design is rather simple: export the
AccessKeySinkSurface
,BasicToaster
,BasicTranscript
,BasicConnectivityStatus
,BasicSendBox
. This allows developers to use them to build their own customBasicWebChat
-like component.Specific Changes
BasicWebChat
control uses:AccessKeySinkSurface
,BasicToaster
,BasicTranscript
,BasicConnectivityStatus
,BasicSendBox
. This allows us to use them in our own customizations.PR Checklist
CHANGELOG.md
Review Checklist
z-index
)package.json
andpackage-lock.json
reviewed