v6
UCS Operator - changelog
All notable changes to this project will be documented in this file.
[6.18.2] - 2025-02-17
🐛 Bug Fixes
- (localization) Add missing czech translations
[6.18.1] - 2025-02-17
🐛 Bug Fixes
- (modal) Check if element is connected to DOM before opening it as dialog
- (typing) Set title explicitly to undefined in react-helmet to make type checker happy
- (soft_phone) Handle finished session when transfering with consulatation
- (notifications) Handle undefined notifications service worker registration
[6.18.0] - 2025-02-07
🚀 Features
- (supervisor) Display popup with queue name over phone button displaying information about current call
- Added function to the ucsOperator api to override theme for current session.
- Queue table header cell in CallHistory now shows an icon when there is an active filter related to this column.
🐛 Bug Fixes
- (localization) Add missing czech translations
- (outbound) Display all leads by default
- (style) Changed the CallHistory filter button and the QueueHeaderCell icon to orange.
🚜 Refactor
- Use context api instance instead of global one
- Use context api instance instead of global one
- Use context api instance instead of global one
- Use context api instance instead of global one
- Use context api instance instead of global one
- Use context api instance instead of global one (hangup, terminate call)
- Use context api instance instead of global one (provisioning)
- Do not log that widget couldn't be added to remote log as reducer should not call api
- Load sms queues via react query to lazy load it and use context api instead of global
- Use context api instance instead of global one (settings modifier)
- Use context api instance instead of global one (outbound)
- Use context api instance instead of global one (sup ctrl)
- Use context api instance instead of global one (supervisor profiles)
- Use context api instance instead of global one (crm)
- Use context api instance instead of global one (task solution)
- Use context api instance instead of global one (email filters)
- Use context api instance instead of global one (impersonation)
- Use context api instance instead of global one (rating form editor)
- Use context api instance instead of global one (sms chat)
- Use context api instance instead of global one (email person change)
- Use context api instance instead of global one (email)
- Replace global api instance with just fake object having only exactly the methods that are still used via global instance
- Remove unused imports
- Refactoring and tweaks based on cr
- Created Theme type and THEMES constant. ThemeChange can now be rendered independently on position. Tweaked the daylight animation. Extracted useDetermineTheme into a standalone function.
- Changed to ternary operator.
⚙️ Miscellaneous Tasks
- Reformat code
- Add typing to function parameters
- Convert EmailFilter/apiMethods to ts
- Convert Impersonation/actions to ts
- Convert RatingFormEditor/apiMethods to ts
- Convert SMSChat/actions to ts
WIP
- Rotate sun/moon allways same direction using css only
[6.17.0] - 2025-01-29
🚀 Features
- (dialog-modal) Add prop that enables unmounting children when dialog is closed
- (speed-dial) Make speed dial icons configurable via integration configuration
🐛 Bug Fixes
- (chat) Automatically open docked chat sessions when open sessions are closed
- (widget) Color failed widget red so it's more noticable that something went wrong
- (widget) Set allowColorChange to all widget indexes so GeneralSettings knows that it's there for sure
🚜 Refactor
- Improve typing of widget register to make possible removing runtime check which improves performance
- Select api instance from context instead of importing global instance
- Inline task serve api call to use context api
- Use context api instance to have control over instance that application is using and make transition to new auth more seamless
- Use context api instance to have control over instance that application is using and make transition to new auth more seamless
- (SoftPhone) Use context api instance in to have control over instance that application is using and make transition to new auth more seamless
- (templates) Replace template dropdown reducer with react-query
- (softphone) Replace manual event subscription with ucs event hook
- (sms) Subscribe to sms events via hook useUcsEvent instead of simply calling api.subscribe
- (email) Subscribe to template events via context api instance instead of global one
- (crm) Subscribe to template events via context api instance instead of global one
- Rename useTemplate -> applyTemplate so eslint does not think that it's react hook
- (typing) Split websocket related methods and api call related methods to 2 interfaces as a preparation for future calling api using http requests
- Use context api instance instead of global one
- (dial) Trigger hold/resume/mute directly withtout dispatching it via redux as it is not needed
⚙️ Miscellaneous Tasks
- Rename file .js -> .ts
- Enable browser globals in eslint config to remove false positive lint errors
- Remove unused parameter
- Reorganize imports
- Reformat code
- Reformat code
- Reorganize imports
[6.16.0] - 2025-01-15
🚀 Features
- (supervisor) Allow hanging up calls of agents even while on call
[6.15.1] - 2025-01-15
🐛 Bug Fixes
- (supervisor_view) Fix hangup button
🚜 Refactor
- Fix typing
[6.15.0] - 2025-01-07
🚀 Features
- (phone-button) Determine text color by background
🚜 Refactor
- Select appState using selector to simplify future refactoring of state management
- Add typing to application notifications (and remove immutable)
- Create second application state to enable incremental migration from immutable to native js data
- Move outboundId from immutable store to native js
- Move dialLine from immutable store to native js
- Refactor store typing of actions to improve code stability and readability
- Add typing to action creators paramters
- Remove legacy lint rule ignores
🧪 Testing
- Fix tests
⚙️ Miscellaneous Tasks
- Fix typing of rating history filter reducer
- Enable svgr loader to be able import svg files as react components
[6.14.1] - 2025-01-06
🐛 Bug Fixes
- (button) Set default button color to grey
- (AgentBadge) Display agent ringing/calling color by color settings in administration - teams
- (user-add) Handle form submittion error without data
- (agent-stats) Determine if agent is idle or talking by interactions rather than legacy agent state
- (react) Render empty row if agent is not found in different component to prevent application crash
🚜 Refactor
- (button) Simplify button coloring by using oklch model for text color and focus/hover background computation
- Use useAppSelector instead of useSelector to enhance type safety
- Use raw interaction data without conversion to immutable
- (queue-status) Longest idle agent - replace agent.status and agent intaraction.state merge named as agent.state with just status and interactions
- (queue-status) Agents count - replace agent.status and agent intaraction.state merge named as agent.state with just status and interactions
- (agent-book) Compute agents color in agent contact book while transfering according to status and interaction instead of state
- Use group id from data to prevent using index as key
- Remove dead code
- Fix forgotten parameter name
- Put agent and interaction color determination to one place to prevent future conflicts
- Remove dead code
⚙️ Miscellaneous Tasks
- Mark bun lockfile as binary and hint git how to diff it
[6.14.0] - 2024-12-19
🚀 Features
- (supervisor) Color new (not progressed) call as if it was ringing to indicate that agent already dialed the call
🐛 Bug Fixes
- Check if array includes a value instead of index to correctly determine agent's participation in call
⚙️ Miscellaneous Tasks
- (typing) Make max duration validator a typeguard
- Patch constant generator so it ignores enums and localization function
- Handle python enums in constant generator
- Add interaction state and type enums