Skip to content

fix: console text selection#1834

Open
pedrolamas wants to merge 3 commits intofluidd-core:developfrom
pedrolamas:pedrolamas/console-no-dynamic
Open

fix: console text selection#1834
pedrolamas wants to merge 3 commits intofluidd-core:developfrom
pedrolamas:pedrolamas/console-no-dynamic

Conversation

@pedrolamas
Copy link
Copy Markdown
Member

@pedrolamas pedrolamas commented May 10, 2026

Replaces and removes the DynamicScroller with a regular list. Main reason for this is to allow selection of text which the DynamicScroller control does not allow due to circular items recycling.

Fixes #1020
Fixes #1783
Replaces #1823

Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
@pedrolamas pedrolamas added this to the 1.37 milestone May 10, 2026
@pedrolamas pedrolamas requested a review from Copilot May 10, 2026 17:46
@pedrolamas pedrolamas added the Code - Optimizations Everything that relates to code optimizations! label May 10, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR removes vue-virtual-scroller from the console implementation and replaces the virtualized DynamicScroller with a normal scrolling container/list to restore reliable mouse text selection in the console (and related update output consoles).

Changes:

  • Replaced the console’s DynamicScroller with a plain list inside a new AppScrollableContainer that manages “pinned to latest” scrolling.
  • Removed vue-virtual-scroller dependency, plugin registration, CSS import, and related TypeScript typings.
  • Updated console item rendering to support both ConsoleEntry and UpdateResponse payload shapes.

Reviewed changes

Copilot reviewed 6 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/typings/vue-virtual-scroller.d.ts Removes local typings for vue-virtual-scroller.
src/main.ts Removes vue-virtual-scroller CSS import and plugin registration.
src/components/widgets/console/ConsoleItem.vue Broadens accepted item type and adjusts rendering guards for union types.
src/components/widgets/console/ConsoleCard.vue Removes auto-scroll toggle UI and updates scroll-to-latest invocation.
src/components/widgets/console/Console.vue Replaces DynamicScroller with AppScrollableContainer + v-for list rendering.
src/components/ui/AppScrollableContainer.vue Adds a new reusable scroll container that tracks “away from latest” state.
package.json Removes vue-virtual-scroller dependency.
package-lock.json Removes vue-virtual-scroller and its transitive dependencies.
components.d.ts Registers AppScrollableContainer for auto-imported components typing.

Comment on lines +40 to +44
updated () {
this.$nextTick(() => {
this.scrollToLatest()
})
}
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Acknowledged. This is a known trade-off of the simplified implementation. In practice the flipLayout option is rarely used, so the viewport drift impact is expected to be minimal. Can be revisited if it turns out to be a problem.

Comment thread src/components/ui/AppAutoScrollContainer.vue
Comment thread src/components/widgets/console/Console.vue
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 9 changed files in this pull request and generated 2 comments.

Comment on lines 73 to 77
</v-list-item-content>
</v-list-item>

<v-list-item @click="autoScroll = !autoScroll">
<v-list-item-action class="my-0">
<v-checkbox :input-value="autoScroll" />
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>
{{ $t('app.console.label.auto_scroll') }}
</v-list-item-title>
</v-list-item-content>
</v-list-item>

<v-list-item @click="flipLayout = !flipLayout">
<v-list-item-action class="my-0">
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I want to keep the state property for now and will revisit this later.

Comment thread src/components/ui/AppAutoScrollContainer.vue
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Code - Optimizations Everything that relates to code optimizations!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Console still stops scrolling Selection of console using mouse click-hold-drag doesn't work

2 participants