Open
Description
openedon Nov 26, 2023
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, useProps
instead Address XS code hygiene tasks #4981 - XS: Mark all props as read-only, also any arrays and objects under it Address XS code hygiene tasks #4981
- XS: Prefer
import { type ABC }
overimport type { ABC }
Address XS code hygiene tasks #4981 - XS: Move to
use-ref-from
anduse-state-with-ref
, fromuseValueRef
- S: Change activity key type from
string
toActivityKey
of 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
WebChatActivity
and many things as read-only - M: Move helper function to
botframework-webchat-base
(Add base package #5176)- The new
base
package 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)
- XL: Add GitHub CI pipeline (Add PR validation pipeline to GitHub Actions #4976)
- XL: Move to
tsup
(Emit ESM build via tsup #5148) - XL: Move to modern middleware and
react-chain-of-responsibility
(Feature/middleware v2 init #5118) - XL: Migrate from
lerna@6
tolerna@7
or pure NPM workspaces #4847 - XL: Move as much hooks to API as possible
- XL: Unify middleware v1 (activity, etc.) and middleware v2 (attachment for screen reader) (Feature/middleware v2 init #5118)
- L: Combine attachment middleware and attachment for screen reader middleware in a single middleware (Feature/middleware v2 init #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: Use
valibot
to validate props from external #5182 - L: Move to
micromark
or other synchronousmdast
packages, need table extension, strikethrough extension, and auto-link #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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment