BotFramework-WebChat icon indicating copy to clipboard operation
BotFramework-WebChat copied to clipboard

Chores and code hygiene

Open compulim opened this issue 2 years ago • 0 comments

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/VFC types, use Props instead #4981
  • [ ] XS: Mark all props as read-only, also any arrays and objects under it #4981
  • [ ] XS: Prefer import { type ABC } over import type { ABC } #4981
  • [ ] XS: Move to use-ref-from and use-state-with-ref, from useValueRef
  • [ ] S: Change activity key type from string to ActivityKey of type wc.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 WebChatActivity and many things as read-only
  • [ ] M: Move helper function to botframework-webchat-base (#5176)
    • The new base package will be bundled and not published
  • [ ] 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: useStyleOptions inside 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 of activity$
  • [ ] 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

compulim avatar Nov 26 '23 08:11 compulim