Skip to content

chore/upgrade vue 3#8619

Open
max-nextcloud wants to merge 125 commits into
mainfrom
chore/upgrade-vue-3
Open

chore/upgrade vue 3#8619
max-nextcloud wants to merge 125 commits into
mainfrom
chore/upgrade-vue-3

Conversation

@max-nextcloud

@max-nextcloud max-nextcloud commented May 20, 2026

Copy link
Copy Markdown
Collaborator
  • upgrade dependencies to vue3
  • replace new Vue with createApp
  • <var>.sync to v-model:<var>
  • fix imports
  • Vue.observable to reactive
  • from beforeDestroy() to beforeUnmount()
  • key attribute in v-for component

Todos

  • Table action buttons broken
  • Editor and Menubar alignment in Collectives broken
  • Menubar actions keep getting reloaded endlessly
  • Check if InfoBar properties from Collectives are still reactive
  • Check if collaboration cursor from other session members show their username
  • $on no longer exists in Vue 3. We still use it in DirectEditing
  • Test DirectEditing
  • Table doesn't spawn full width. Claude says:
    Details
    image
    image

@max-nextcloud max-nextcloud moved this to 🏗️ In progress in 📝 Productivity team May 21, 2026
@max-nextcloud max-nextcloud self-assigned this May 21, 2026
@max-nextcloud max-nextcloud force-pushed the chore/upgrade-vue-3 branch 4 times, most recently from 59e04f7 to 232f2dc Compare June 9, 2026 08:51
@mejo- mejo- added this to the Nextcloud 35 milestone Jun 29, 2026
@mejo- mejo- self-assigned this Jun 29, 2026
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch 5 times, most recently from a32e5da to a985bdf Compare June 30, 2026 16:56
Newer tiptap versions change the way vue elements are rendered.
Make sure it does not get updated while we bump the vue version.

Signed-off-by: Max <max@nextcloud.com>
Also replace `Vue.extend` with `createApp` when it is needed.
In SourceView it can simply be dropped
as we already render SourceView with our own vue instance.

Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
We should import them explicitely. But that is for another day.

Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Max <max@nextcloud.com>
mejo- and others added 11 commits July 1, 2026 12:32
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
defineAsyncComponent left the editor container ref unresolved at mount,
so TextEditorEmbed aborted.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Changed with nextcloud-vue v9.

Signed-off-by: Jonas <jonas@freesources.org>
We did this before in the table spec helper function.

Signed-off-by: Jonas <jonas@freesources.org>
`supportPreview` is a computed, not a function.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Follow-up to 33c48bf which converted these components to
`defineAsyncComponent()`.

Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch from 41d6e05 to 01609dc Compare July 1, 2026 10:35
@mejo- mejo- marked this pull request as ready for review July 1, 2026 10:35
@mejo- mejo- requested review from mejo- and silverkszlo as code owners July 1, 2026 10:35
mejo- added 2 commits July 1, 2026 13:05
Follow-up to e57ffe6.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Comment thread src/components/Editor/MediaHandler.vue Outdated
Comment thread src/helpers/files.js
mejo- added 5 commits July 1, 2026 13:59
Follow-up of 68ae3fd

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
…e-demi

Signed-off-by: Jonas <jonas@freesources.org>
Also refactor the filePicker builder code a bit.

Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch from 6539e0a to 2308728 Compare July 1, 2026 13:25
mejo- added 3 commits July 1, 2026 18:00
We use the `onLoadedHandler()` nowadays as the emitted event didn't
reach the Viewer anyway due to the new ViewerView.js wrapper.

Signed-off-by: Jonas <jonas@freesources.org>
Prevents attributes from Viewer component being used as HTML element
attributes.

Also simplify createApp ViewerComponent call.

Signed-off-by: Jonas <jonas@freesources.org>
Before, we used the Vue 2 `$destroy()` function that called the Vue
component teardown cycle - which called save and then close. Vue
3 removed that method.

The former fix to call `close()` here was partial, as it closed the
editor without saving first. So let's `save()` explicitely here as well.

Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch from 2308728 to 1f4b605 Compare July 1, 2026 16:02

@mejo- mejo- left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ready for merge from my side 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: 🏗️ In progress

Development

Successfully merging this pull request may close these issues.

2 participants