Sivin Varghese
cc8866a84e
feat: Sync Popular Articles locale with widget locale ( #11754 )
...
# Pull Request Template
## Description
This PR includes the following improvements:
* **Popular Articles Locale Selection based on Widget Locale**
* Implements priority-based locale matching:
* Exact locale match (e.g., "fr" === "fr")
* Base language match (e.g., "fr" when selected is "fr_CA")
* Variant match (e.g., "fr_BE" when selected is "fr")
* Removes default locale fallback - if no locale match is found, popular
articles section is hidden.
* Fixed **API** filter issue where the locale parameter was previously
ignored
* Hides Popular Articles section completely when no locale match is
found and Only shows relevant articles in the user's language
* **RTL Direction Handling Improvements**
* Now directly reads the `lang` attribute from HTML element `<html
lang="en">` instead of relying on `.locale-switcher` and sets direction
attribute based on language.
* Adds `data-dir-applied` attribute to prevent overlapping direction
settings between global helpers and components (eg case: Insert article
in editor dashboard)
* Update `IframeLoader.vue` to Composition API and improve the **dir**
logic
Fixes
1.
[CW-4505](https://linear.app/chatwoot/issue/CW-4505/popular-articles-not-displayed-based-on-user-locale-in-live-chat ),
https://github.com/chatwoot/chatwoot/issues/11745
2. RTL direction is not working in widget article view after merging
this PR https://github.com/chatwoot/chatwoot/pull/11692
## Type of change
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
### Loom video
**Popular Articles**
https://www.loom.com/share/7cecbaaa77eb48e19263398b6ba8ddef?sid=a2452b8e-7d7e-46a3-b5c8-aed5ab5bc801
**RTL improvements**
https://www.loom.com/share/3ccad77174a0412097e802641df5f3e0?sid=e10ac57f-5c49-4084-84d3-5ad58aee54fa
## 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
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2025-06-24 19:52:44 +05:30
Sivin Varghese
3a693947b5
feat: Add RTL Support to Widget ( #11022 )
...
This PR adds RTL support to the web widget for improved right-to-left language compatibility, updates colors, and cleans up code.
Fixes https://linear.app/chatwoot/issue/CW-4089/rtl-issues-on-widget
https://github.com/chatwoot/chatwoot/issues/9791
Other PR: https://github.com/chatwoot/chatwoot/pull/11016
2025-03-21 09:39:03 -07:00
Sivin Varghese
5745ffbcb0
fix: Theme inconsistency between portal page and widget ( #11140 )
2025-03-21 13:26:50 +05:30
Sivin Varghese
d3d39a81d6
fix: Prevent duplicate chat creation in the web widget during latency ( #10745 )
2025-01-23 12:53:28 +05:30
Shivam Mishra
490fc4eaba
fix: Remove the usage of asyncComponent in emoji picker ( #10232 )
...
This PR has the following fixes
1. preview of article inside the iframe, earlier this didn't work because the iframe didn't get the URL correctly. We fix that by passing the URL is a query instead
2. Emoji picker caused a weird redirect, this was only happening when the chunk was loaded async, this PR changes it to use regular loading instead
2024-10-04 08:10:27 -07:00
Shivam Mishra
88a16b8e96
fix: submit pre chat triggering native submit event ( #10224 )
2024-10-04 20:31:25 +05:30
Shivam Mishra
c51a458c25
style: apply fixes for eslint issues [cw-3590] ( #10210 )
...
These fixes are all auto generated and can be merged directly
Fixes the following issues
1. Event used on components should be hypenated
2. Attribute orders in components
3. Use `unmounted` instead of `destroyed`
4. Add explicit `emits` declarations for components, autofixed [using
this
script](https://gist.github.com/scmmishra/6f549109b96400006bb69bbde392eddf )
We ignore the top level v-if for now, we will fix it later
2024-10-03 15:02:12 +05:30
Shivam Mishra
42f6621afb
feat: Vite + vue 3 💚 ( #10047 )
...
Fixes https://github.com/chatwoot/chatwoot/issues/8436
Fixes https://github.com/chatwoot/chatwoot/issues/9767
Fixes https://github.com/chatwoot/chatwoot/issues/10156
Fixes https://github.com/chatwoot/chatwoot/issues/6031
Fixes https://github.com/chatwoot/chatwoot/issues/5696
Fixes https://github.com/chatwoot/chatwoot/issues/9250
Fixes https://github.com/chatwoot/chatwoot/issues/9762
---------
Co-authored-by: Pranav <pranavrajs@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-10-02 00:36:30 -07:00
Fayaz Ahmed
a76cd7684a
chore: Replace darkmode mixin with useDarkMode composable [CW-3474] ( #9949 )
...
# Pull Request Template
## Description
Replaces darkModeMixin with the new useDarkMode composable and replaces
wll usages of mixin the the composable in components and pages
Fixes
https://linear.app/chatwoot/issue/CW-3474/rewrite-darkmodemixin-mixin-to-a-composable
## Type of change
Please delete options that are not relevant.
- [x] New feature (non-breaking change which adds functionality)
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2024-09-12 00:29:41 +05:30
Sivin Varghese
b4b308336f
feat: Eslint rules ( #9839 )
...
# Pull Request Template
## Description
This PR adds new eslint rules to the code base.
**Error rules**
| Rule name | Type | Files updated |
| ----------------- | --- | - |
| `vue/block-order` | error | ✅ |
| `vue/component-name-in-template-casing` | error | ✅ |
| `vue/component-options-name-casing` | error | ✅ |
| `vue/custom-event-name-casing` | error | ✅ |
| `vue/define-emits-declaration` | error | ✅ |
| `vue/no-unused-properties` | error | ✅ |
| `vue/define-macros-order` | error | ✅ |
| `vue/define-props-declaration` | error | ✅ |
| `vue/match-component-import-name` | error | ✅ |
| `vue/next-tick-style` | error | ✅ |
| `vue/no-bare-strings-in-template` | error | ✅ |
| `vue/no-empty-component-block` | error | ✅ |
| `vue/no-multiple-objects-in-class` | error | ✅ |
| `vue/no-required-prop-with-default` | error | ✅ |
| `vue/no-static-inline-styles` | error | ✅ |
| `vue/no-template-target-blank` | error | ✅ |
| `vue/no-this-in-before-route-enter` | error | ✅ |
| `vue/no-undef-components` | error | ✅ |
| `vue/no-unused-emit-declarations` | error | ✅ |
| `vue/no-unused-refs` | error | ✅ |
| `vue/no-use-v-else-with-v-for` | error | ✅ |
| `vue/no-useless-v-bind` | error | ✅ |
| `vue/no-v-text` | error | ✅ |
| `vue/padding-line-between-blocks` | error | ✅ |
| ~`vue/prefer-prop-type-boolean-first`~ | ~error~ | ❌ (removed this
rule, cause a bug in displaying custom attributes) |
| `vue/prefer-separate-static-class` | error | ✅ |
| `vue/prefer-true-attribute-shorthand` | error | ✅ |
| `vue/require-explicit-slots` | error | ✅ |
| `vue/require-macro-variable-name` | error | ✅ |
**Warn rules**
| Rule name | Type | Files updated |
| ---- | ------------- | ------------- |
| `vue/no-root-v-if` | warn | ❎ |
Fixes https://linear.app/chatwoot/issue/CW-3492/vue-eslint-rules
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## 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
---------
Co-authored-by: Fayaz Ahmed <fayazara@gmail.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com >
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-08-05 14:02:16 +05:30
Fayaz Ahmed
00ef9c475f
fix: Replace the bus events with emitter in widget ( #9584 )
...
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2024-06-03 16:36:15 +05:30
Muhsin Keloth
c1a2e67c9e
fix: Change the route change logic based on bus events, after creating a new conversation in the widget. ( #8328 )
2023-11-10 09:44:59 +05:30
Shivam Mishra
d94108bf3f
feat: show ReplyTo in widget UI ( #8094 )
...
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2023-10-27 13:35:02 +05:30
Nithin David Thomas
28db18ebbd
chore: Shows articles in dark mode for widget ( #8115 )
2023-10-16 16:59:15 +05:30
Shivam Mishra
a88d155dd7
feat: update tool-chain to latest ( #7975 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-27 14:02:34 +05:30
Nithin David Thomas
018c468303
chore: Refactors widget to use i18n locale for articles ( #7958 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-21 18:24:03 +05:30
Shivam Mishra
48bf8d08e5
feat: Update dependencies and fix import syntax for Vite migration ( #7959 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-21 17:55:54 +05:30
Nithin David Thomas
fabb3c8da4
fix: Help Center articles are not available on the widget [CW-2534] ( #7954 )
2023-09-21 17:06:15 +05:30
Pranav Raj S
94a20af9db
fix: Render articles in widget if it is available ( #7654 )
...
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: iamsivin <iamsivin@gmail.com >
Co-authored-by: Sojan <sojan@pepalo.com >
2023-09-14 19:56:17 +05:30
Nithin David Thomas
52e49d5f9d
feat: Creates component to show article in an iFrame ( #7857 )
2023-09-06 18:55:39 +05:30
Pranav Raj S
961d810645
Revert "feat: Show popular articles on widget home" ( #7706 )
2023-08-10 22:27:51 -07:00
Nithin David Thomas
e052a061f4
feat: Show popular articles on widget home ( #7604 )
2023-08-01 21:32:44 +05:30
Nithin David Thomas
2f2cdd7e7c
feat: Hides dismissed campaigns while browsing [cw-33] ( #6842 )
...
* Chore: moves localstorage helper as a shared utility and refactors constants
* Refactors constants file
* feat: Hides dismissed campaigns while browsing
* Snoozes all campaigns for an hour after dismissing
* Fixes error with date parsing
* Snooze ongoing campaigns
* Review fixes
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2023-04-25 22:38:36 +05:30
Muhsin Keloth
a6e7737c56
feat: Show custom attributes in pre-chat form on new conversation ( #6735 )
2023-03-23 15:22:49 +05:30
Muhsin Keloth
4f3a271355
chore: Add custom attributes in campaign.triggered event ( #4463 )
2022-04-20 10:49:52 +05:30
Muhsin Keloth
26f23a6e21
feat: Custom fields in pre-chat form ( #4189 )
2022-04-19 12:47:29 +05:30
Muhsin Keloth
715400f7ab
fix: Disable pre-chat fields for identified users ( #4234 )
2022-03-22 01:28:22 +05:30
Muhsin Keloth
f405572e5c
Revert "feat: Custom fields in pre-chat form ( #4135 )" ( #4182 )
...
This reverts commit e730804b48 .
2022-03-15 16:54:33 +05:30
Muhsin Keloth
e730804b48
feat: Custom fields in pre-chat form ( #4135 )
...
Fixes : #2744
2022-03-14 15:06:56 +05:30
Pranav Raj S
28d102f526
fix: Show new message screen instead of input field ( #4102 )
2022-03-03 12:36:31 +05:30
Pranav Raj S
9c31d7c672
feat: Use vue-router on widget route management ( #3415 )
...
* feat: Add vue-router to widget
Co-authored-by: Pranav <pranav@chatwoot.com >
* Move to dynamic imports
* Move to routerMixin
* Fix popup button display
* Remove unnecessary import
* router -> route
* Fix open state
* Fix issues
* Remove used CSS
* Fix specs
* Fix specs
* Fix widgetColor specs
* Fix mutation specs
* Fixes broken lint errors
* Fixes issues with widget flow
Co-authored-by: Nithin <nithin@chatwoot.com >
Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2022-01-12 16:25:27 +05:30
Pranav Raj S
da163cc1f7
chore: Move unscoped styles to global stylesheet ( #3422 )
2021-11-19 16:09:20 +05:30
Pranav Raj S
a3ba8f9e35
feat: Remove ionicons v2 dependency on widget ( #3402 )
2021-11-18 15:18:51 +05:30
Muhsin Keloth
c6326993df
feat: Show pre-chat form before triggering the campaign ( #3215 )
2021-11-11 19:02:16 +05:30
koudshoorn
af1d8c0ee5
feat: Fixes #1940 WCAG support for website widget ( #2071 )
...
Co-authored-by: Kaj Oudshoorn <kaj@milvum.com >
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com >
2021-09-02 12:13:53 +05:30
Nithin David Thomas
70d41ffcdd
fix: Smoothens out opening animation for widget ( #2789 )
2021-08-14 08:40:29 +05:30
Nithin David Thomas
2035d24cb8
enhancement: Show close button for unread view ( #2758 )
...
* enhancement: Show close button for unread view
* Fixes issue with button spacing
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2021-08-07 11:56:40 +05:30
Nithin David Thomas
9c257578b0
fix: Fixes unread view blocking page scroll ( #2727 )
...
* fix: Fixes unread view blocking page scroll
* Update sdk.js
* Fixes the height issue for unread view
* Fix unread message position issue
* Code climate fixes
* Fixes height issue for large messages
* Fixes height issue on unread view
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2021-08-07 11:56:15 +05:30
Muhsin Keloth
92c14fa87d
feat: CSAT response collection public page ( #2685 )
2021-08-03 18:22:50 +05:30
Muhsin Keloth
15085cfb98
feat: Conversation transcript in widget ( #2549 )
2021-07-13 11:31:21 +05:30
Muhsin Keloth
f0f66c7da6
feat: Add ability to create a new conversation if the previous conversation is resolved ( #2512 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2021-06-30 21:09:44 +05:30
Pranav Raj S
2b9c93a1b3
chore: Disallow unread/campaign view if widget is active ( #2432 )
2021-06-15 11:35:31 -07:00
Muhsin Keloth
fb2f3ff89f
feat: Create campaign conversation only if user interacts with the bubble ( #2335 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2021-06-15 20:09:42 +05:30
Sojan Jose
22965be6dc
feat: Add AgentBot APIs ( #2323 )
2021-06-01 22:34:25 +05:30
Muhsin Keloth
f925bc22e2
chore: Add sender details in Unread message ( #2277 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2021-05-17 21:38:59 +05:30
Muhsin Keloth
ce4ce3c86c
fix: Check uploaded file size in widget and dashboard ( #1975 )
...
* File size check logic in widget
* set maxium file size
* update locale texts
* file size check in dashboard
* dynamincally set file size limit error message
* code climate review fixes
* add alert mixin
* move attahcment bus event to constants
* Move file size check logic to helper
* add specs for file size limit check helper
* changes as per review
2021-04-15 22:28:19 +05:30
Nithin David Thomas
3043ee5058
Fix: Hide prechat for sessions inititated with setUser ( #1914 )
2021-03-20 17:44:20 +05:30
Pranav Raj S
1706199a0e
feat: Add pre_chat_form_settings in inbox settings page ( #1776 )
2021-02-16 00:58:57 +05:30
Pranav Raj S
037ffc7419
feat: Add a pre-chat form on widget ( #1769 )
2021-02-16 00:14:13 +05:30
Nithin David Thomas
3d2db95417
feat: Add preview for attachment messages ( #1562 )
...
Add preview for pending messages and attachments
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2021-01-06 17:56:29 +05:30