mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-28 21:01:02 +08:00
# Pull Request Template ## Description This PR replaces `vue-virtual-scroller` with [`virtua`](https://github.com/inokawa/virtua/#benchmark) for the conversation list virtualization. ### Changes - Replace `vue-virtual-scroller` (`DynamicScroller`/`DynamicScrollerItem`) with `virtua`'s `Virtualizer` component - Remove `IntersectionObserver`-based infinite scroll in favor of `Virtualizer`'s `@scroll` event with offset-based bottom detection - Remove `useEventListener` scroll binding and `intersectionObserverOptions` computed - Simplify item rendering — no more `DynamicScrollerItem` wrapper or `size-dependencies` tracking; `virtua` measures items automatically ## 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 - [ ] 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 - [ ] 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 |
||
|---|---|---|
| .. | ||
| Accordion | ||
| app | ||
| auth | ||
| base | ||
| buttons | ||
| copilot | ||
| table | ||
| ui | ||
| widgets | ||
| ChannelSelector.vue | ||
| ChatList.vue | ||
| ChatListHeader.vue | ||
| Code.vue | ||
| ConversationItem.vue | ||
| CustomAttribute.vue | ||
| CustomBrandPolicyWrapper.vue | ||
| CustomSnoozeModal.vue | ||
| index.js | ||
| IntersectionObserver.vue | ||
| Modal.vue | ||
| ModalHeader.vue | ||
| NetworkNotification.vue | ||
| policy.vue | ||
| SettingsSection.vue | ||
| Snackbar.vue | ||
| SnackbarContainer.vue | ||