Skip to content

fix(contact-center): fix bugs listed in CAI-6468#458

Merged
rarajes2 merged 5 commits into
webex:ccwidgetsfrom
rarajes2:user-state-bugs-CAI-6468
May 23, 2025
Merged

fix(contact-center): fix bugs listed in CAI-6468#458
rarajes2 merged 5 commits into
webex:ccwidgetsfrom
rarajes2:user-state-bugs-CAI-6468

Conversation

@rarajes2

@rarajes2 rarajes2 commented May 20, 2025

Copy link
Copy Markdown
Contributor

COMPLETES #< CAI-6468 >

This pull request addresses

There were various bugs which needed to be fixed for the user-state. List of the issues are shown below

  • When in Custom State, when the agent changes the State from UI, the custom state goes away. This should not happen - This is already working
  • RONA should have a timer but Engage shouldn't. (Test this case) - This is already working
  • When in Custom State, if there's an event that changes the state, the custom state goes away. Testing Steps: (Fixed)
    • Login in to two windows
    • Jump on a call to see the states change to Engaged
    • Refresh one of two windows and see the state going to Meeting in the other window

[For all of the above, the fix is ideally to prioritize Custom State over the Agent desktop state changes and clear it on Wrapup]

  • There's no tooltip today on the Widgets for Agent State. Please check Agent Desktop Behaviour and mock it. Cases to check (Fixed):
    • Hover on a non-custom state
    • Make a call and let it go to Engaged State and hover over it to see a tool tip
    • During an Engaged State, change the User State from Available to something else and see the tool tip behaviour
  • When an agent has Multiple tasks, say Voice and Digital, if the Digital Task is wrapped up, the custom state is cleared even though there's a Voice Task. This should be handled in both Regular and Relogin cases (Please check how Agent desktop behaves as well) - Fixed
  • When testing responsiveness using Chrome Developer Console's Mobile emulator, the tap doesn't work on User State. The dropdown does not show up - When we change from desktop to mobile view, it does not work but when we reload the page in the mobile view, it works
  • During an extension call, if the page is refreshed, the user state is showing Available instead of Engaged - Fixed

by making the following changes

Updated the code mainly for the following files to fix the above issues

  • packages/contact-center/cc-components/src/components/UserState/user-state.tsx
  • packages/contact-center/store/src/storeEventsWrapper.ts
  • packages/contact-center/task/src/helper.ts

Vidcast - https://app.vidcast.io/share/010ae2cc-1dc4-4b1d-b668-ac42350e9ff3?playerMode=vidcast
RONA Timer - https://app.vidcast.io/share/7a62d0a6-ddb2-469d-8e56-f52ab3519963
Tooltip improvement - https://app.vidcast.io/share/d03463a5-e6be-4995-bb9e-a67ec0695fe3

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

  • The testing is done with the amplify link
    < ENUMERATE TESTS PERFORMED, WHETHER MANUAL OR AUTOMATED >

All the scenarios mentioned in the description were tested.

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other - Please Specify
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

Checklist before merging

  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the testing document

@coderabbitai

coderabbitai Bot commented May 20, 2025

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

The changes introduce enhancements and refactoring across several packages in the contact center application. In the UI, a tooltip is added to the user state selector by wrapping it in a TooltipNext component, with tooltip content determined by the user's custom state. Corresponding CSS styles for tooltips are added. In the store logic, automatic resetting of the customState is removed from state-setting methods, and the logic for updating state during task hydration is made conditional. The task helper introduces constants for the "Engaged" state and updates the store state and current task after a call wrap-up. Related tests are updated to verify these new behaviors.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@rarajes2 rarajes2 added the validated Indicates that the PR is ready for actions label May 20, 2025
@aws-amplify-us-east-2

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-458.d1b38q61t1z947.amplifyapp.com

@rarajes2

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 20, 2025

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@mkesavan13 mkesavan13 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add a vidcast by showing the fixes using the PR preview app?

@rarajes2

Copy link
Copy Markdown
Contributor Author

Could you please add a vidcast by showing the fixes using the PR preview app?

I have added the vidcast link the PR description.

@sreenara sreenara left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rarajes2

  1. What was the issue that was causing the state to go to available when you ended a task? It took a few attempts and then got it working.
  2. Have you tested all of the fixes and controls with only keyboard for accessibility purposes?
  3. Question about the behavior of the state widget. When we end a call task, why is the state staying in Engaged? An agent should always be able to receive another call right? The digital task should not be blocking another incoming call from coming in?

@rarajes2

Copy link
Copy Markdown
Contributor Author

@rarajes2

  1. What was the issue that was causing the state to go to available when you ended a task? It took a few attempts and then got it working.
  2. Have you tested all of the fixes and controls with only keyboard for accessibility purposes?
  3. Question about the behavior of the state widget. When we end a call task, why is the state staying in Engaged? An agent should always be able to receive another call right? The digital task should not be blocking another incoming call from coming in?
  1. Not sue what caused the issue. My guess was someone else might be using the same user or have interfered somehow. Couldn't reproduce the issue again.
  2. Tested the a11y, it's working fine.
  3. The state shows engaged after ending the call because we have some task but this does not block the agent from receiving the call if engaged is because of the digital task. This is the same behaviour on the Agent Desktop

@sreenara sreenara left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a question.

selectedKey={selectedKey}
items={sortedItems}
className={`state-select ${getDropdownClass()}`}
<TooltipNext

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a question about TooltipNext. How different is this from ToggleTip in the new momentum repo? Are we able to select this tooltip with the keyboard?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New momentum design tooltip works better with the a11y so, removed the MRV2 and used the new one.

@rarajes2 rarajes2 merged commit 0873b44 into webex:ccwidgets May 23, 2025
6 of 7 checks passed
github-actions Bot pushed a commit that referenced this pull request May 23, 2025
# [1.28.0-ccwidgets.60](v1.28.0-ccwidgets.59...v1.28.0-ccwidgets.60) (2025-05-23)

### Bug Fixes

* **contact-center:** fix bugs listed in CAI-6468 ([#458](#458)) ([0873b44](0873b44))
@sreenara

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.28.0-ccwidgets.60 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released on @ccwidgets validated Indicates that the PR is ready for actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants