communication-ui-library
communication-ui-library copied to clipboard
Add TeamsCall and TeamsCallAgent to stateful
- Update calling beta version
- Add new beta feature flag "teams-call"
- Extract common logic CallAgentCommon and CallCommon
What
Why
How Tested
Process & policy checklist
- [ ] I have updated the project documentation to reflect my changes if necessary.
- [ ] I have read the CONTRIBUTING documentation.
Is this a breaking change?
- [ ] This change causes current functionality to break.
Actual PR review pending splitting off of the SDK version bump into its own PR.
Chat bundle size is increased❗.
- Current size: 5442386
- Base size: 5442353
- Diff size: 33
Calling bundle size is increased❗.
- Current size: 5332577
- Base size: 5328706
- Diff size: 3871
CallWithChat bundle size is increased❗.
- Current size: 5720160
- Base size: 5716289
- Diff size: 3871
Storybook URL https://60c7ae6891f0e90039d7cd54-jekgsejjki.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-zffwamsboh.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-jjmkkhjyin.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-wsigssqjhb.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-zldlprdvty.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-xrudxvblbt.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-iviiaatmvt.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-wmkgabqccq.chromatic.com/
Are we able to splti this PR into two -- one to just bump the calling SDK version and then one to add upport for
TeamsCall
?This PR is fairly large and complex, so any ways you can think of to take smaller steps would also be good.
The bump one has been done by some other PRs (not from me), so currently it is 1.8.0-beta.1, I did merge it into this PR, so there is no bumpping needed anymore
Storybook URL https://60c7ae6891f0e90039d7cd54-vtuekhxbjh.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-zoyyqikwbs.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-ghnhoelulw.chromatic.com/
Failed to pass the composite UI Test. If this PR is for UI change and the error is snapshot mismatch, please add "update_snapshots" label to the PR for updating the snapshot.
Storybook URL https://60c7ae6891f0e90039d7cd54-rhjnmclgsk.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-dnfilttqfe.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-adiydfyquu.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-elvwhobyvu.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-iengbxfnme.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-swofkolqlh.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-zydqdxfkgv.chromatic.com/
Did a quick pass, trying to wrap my head around the agent inheritance, I'm concerned about the runtime type checks that are happing (
isACSCallAgent
) coupled with theany
s andunknown
s
those unknowns are for parameters coming from parent proxy "get" functions (if you look at previous code, we are still doing some type cast there), it's unavoidable for proxy class in the end (just depends on where do you do the type cast)
For inheritance itself, it strictly follows runtime check+type guards(and those error code are technically "unreachable"), the isACSCall or isTeamsCall functions are just for pass type checking of typescript and differenciate behavior between ACSCall+TeamsCall
Storybook URL https://60c7ae6891f0e90039d7cd54-tobqtradvp.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-mikwnktfkt.chromatic.com/
Failed to pass the composite UI Test. If this PR is for UI change and the error is snapshot mismatch, please add "update_snapshots" label to the PR for updating the snapshot.
Storybook URL https://60c7ae6891f0e90039d7cd54-hmqybmftds.chromatic.com/
Storybook URL https://60c7ae6891f0e90039d7cd54-vsjahqlffr.chromatic.com/