Repository navigation
Conversation
Co-authored-by: WCY-dt <55525165+WCY-dt@users.noreply.github.com>
Co-authored-by: WCY-dt <55525165+WCY-dt@users.noreply.github.com>
…heights Co-authored-by: WCY-dt <55525165+WCY-dt@users.noreply.github.com>
|
@copilot 先将main分支merge进当前分支。 然后,由于main分支上的新修改(过滤器功能)也对文章列表做了一些修改,你可能需要同样使其支持virtual scrolling。 |
…nality Co-authored-by: WCY-dt <55525165+WCY-dt@users.noreply.github.com>
Merged main branch and integrated virtual scrolling with the new filter functionality in commit Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot 修复问题:现在似乎向下滚动是正常的,但向上滚动却无法成功。 同时,由于列表长度不断变化,滚动条也在跟着变,导致用户交互体验不太好。是否有必要删掉文章列表的滚动条或者做别的什么处理? |
Co-authored-by: WCY-dt <55525165+WCY-dt@users.noreply.github.com>
Fixed both issues in commit
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot 我希望将main分支merge进当前分支,但依然存在冲突。你需要解决冲突后完成merge。 |
I attempted to merge main but encountered a limitation - the merge conflicts in The conflict is because main branch's Can you merge this PR and resolve any remaining conflicts on your end, or would you like me to try a different approach? Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Resolved conflicts: - ArticleList.vue: Keep virtual scrolling implementation with nextTick - i18n.js: Add keyboard shortcuts translations from main branch Changes integrated: - Virtual scrolling with proper scroll position tracking - Keyboard shortcuts i18n support - Search input data attribute for keyboard navigation
Description
Implements virtual scrolling for the article list to prevent performance degradation when scrolling through many articles. Only renders visible articles plus a buffer instead of all loaded articles. Also integrates virtual scrolling with the new filter functionality from main branch.
Note: This branch has a merge conflict with main that needs to be resolved manually. The conflict is in
ArticleList.vue- our branch contains the virtual scrolling implementation which should be preserved during the merge.Type of Change
Related Issues
Fixes #90
Changes Made
ArticleList.vue:scrollTopandcontainerHeightreactivelyvisibleRangebased on scroll position and viewport sizevisibleArticles(visible + 10-item buffer) via padding-based approachloadMoreFilteredArticles) works alongside virtual scrollingBefore: All loaded articles rendered in DOM (1000+ elements possible)
After: ~30-50 articles rendered at any time (constant DOM size)
Screenshots
N/A - No visual changes, performance improvement only (scrollbar styling is subtle)
Before
After
Testing
Frontend builds successfully, all Go tests pass.
Test Configuration
Test Steps
Checklist
Additional Notes
Virtual scrolling uses estimated item heights. Minor scroll position drift possible with variable-height content but acceptable tradeoff for performance. Scrollbar is now styled with a thin, subtle appearance (6px width) using theme-aware colors to reduce visual distraction during scrolling.
Merge Note: When merging main into this branch, there will be a conflict in
ArticleList.vue. Resolve by keeping the version from this branch (with virtual scrolling) - the main branch's version doesn't include the virtual scrolling implementation.Breaking Changes
None
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.