chatwoot/app/javascript/widget/components
Sivin Varghese 6ca38e10e9
feat: Migrate availability mixins to composable and helper (#11596)
# Pull Request Template

## Description

**This PR includes:**

* Refactored two legacy mixins (`availability.js`,
`nextAvailability.js`) into a Vue 3 composable (`useAvailability`),
helper module and component based rendering logic.
* Fixed an issue where the widget wouldn't load if business hours were
enabled but all days were unchecked.
* Fixed translation issue
[[#11280](https://github.com/chatwoot/chatwoot/issues/11280)](https://github.com/chatwoot/chatwoot/issues/11280).
* Reduced code complexity and size.
* Added test coverage for both the composable and helper functions.

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

### Loom video

https://www.loom.com/share/2bc3ed694b4349419505e275d14d0b98?sid=22d585e4-0dc7-4242-bcb6-e3edc16e3aee

### Story
<img width="995" height="442" alt="image"
src="https://github.com/user-attachments/assets/d6340738-07db-41d5-86fa-a8ecf734cc70"
/>



## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules


Fixes https://github.com/chatwoot/chatwoot/issues/12012

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
2025-08-22 00:43:34 +05:30
..
Availability feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
Form feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
layouts feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
pageComponents/Home/Article feat: Sync Popular Articles locale with widget locale (#11754) 2025-06-24 19:52:44 +05:30
PreChat feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
template chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
AgentMessage.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
AgentMessageBubble.vue feat: Improve CSAT responses (#11485) 2025-05-16 14:18:52 +05:30
AgentTypingBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
Banner.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ChatAttachment.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatFooter.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
ChatHeader.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
ChatHeaderExpanded.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatInputWrap.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ChatMessage.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ChatSendButton.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
ConversationWrap.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
DragWrapper.vue style: apply fixes for eslint issues [cw-3590] (#10210) 2024-10-03 15:02:12 +05:30
FileBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
FooterReplyTo.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
GroupedAvatars.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
HeaderActions.vue feat: Support customizable welcome text, availability messages, and UI toggles (#11891) 2025-07-08 14:26:00 -07:00
ImageBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
MessageReplyButton.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
ReplyToChip.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
TeamAvailability.vue feat: Migrate availability mixins to composable and helper (#11596) 2025-08-22 00:43:34 +05:30
UnreadMessage.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
UnreadMessageList.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
UserMessage.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
UserMessageBubble.vue feat: Add RTL Support to Widget (#11022) 2025-03-21 09:39:03 -07:00
VideoBubble.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30