BotFramework-WebChat
BotFramework-WebChat copied to clipboard
Chores and code hygiene
Is your feature request related to a problem?
We need to update Web Chat to clear up some chores and code hygiene. This is a non-exhaustive list.
Describe the suggestion or request in detail
- [ ] XS: Do not use React
FC/VFCtypes, usePropsinstead #4981 - [ ] XS: Mark all props as read-only, also any arrays and objects under it #4981
- [ ] XS: Prefer
import { type ABC }overimport type { ABC }#4981 - [ ] XS: Move to
use-ref-fromanduse-state-with-ref, fromuseValueRef - [ ] S: Change activity key type from
stringtoActivityKeyof typewc.a.${string} - [ ] S: Consider using opaque/tagged type for channel ID or other IDs
- [ ] S: Move predicates (e.g.
isFromUser,hasSent) to core package - [ ] M: Dupe most style options into CSS custom properties
- Should try redo time-sensitive style options, say "Send failed. Retry." into a CSS animation than a JavaScript effect
- [ ] M: Mark
WebChatActivityand many things as read-only - [ ] M: Move helper function to
botframework-webchat-base(#5176)- The new
basepackage will be bundled and not published
- The new
- [ ] M: Port Direct Line emulator to TypeScript
- [ ] L: Remove deprecated code
- [ ] L: Add a wrapper for workarounding behavioral issues related to DirectLineJS
- [ ] L: Componentize the active descendant trick (different narration between browse mode vs. scan mode)
- [x] XL: Add GitHub CI pipeline (#4976)
- [x] XL: Move to
tsup(#5148) - [ ] XL: Move to modern middleware and
react-chain-of-responsibility(#5118) - [ ] XL: #4847
- [ ] XL: Move as much hooks to API as possible
- [ ] XL: Unify middleware v1 (activity, etc.) and middleware v2 (attachment for screen reader) (#5118)
- [ ] L: Combine attachment middleware and attachment for screen reader middleware in a single middleware (#5118)
- [ ] XL:
useStyleOptionsinside activity middleware could read partial style options from channel data - [ ] XL: Moving some release testing into main repo: test hosting Web Chat in
create-react-app, Webpack 4/5, esbuild - [ ] L: Fixing AzDO CI/CD automation
- [ ] L: #5182
- [ ] L: #4844
- [ ] L: Move to
dompurify - [ ] XL/Mutex: Update VRT snapshot file names
- [ ] XL/Mutex: Move VRT into folder hierarchy
- [ ] L: Remove remnants of IE11 and ES5
- [ ] M: Upload VRT failure snapshots in CI
- [ ] XL: Move our current Redux logics into a chat adapter shim and embrace for an updated chat adapter which exposes
Activity[]instead ofactivity$ - [ ] L: Move to CFS from Terrapin
- [ ] L: Build a SSO sample out of the Copilot Studio sample
- [ ] L: Plan CSAT payload
- [ ] XL: Plan to make Web Chat exposed as both Web Component and React component
- [ ] XL: Host Web Chat inside Web Component
Notes: Mutex = when this work is started, will block all other works
Describe alternatives you have considered
No response
Additional context
No response