Skip to content

chore/upgrade vue 3#8619

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

chore/upgrade vue 3#8619
max-nextcloud wants to merge 139 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
@max-nextcloud max-nextcloud force-pushed the chore/upgrade-vue-3 branch from c17e61b to 41d6e05 Compare July 1, 2026 10:11
@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
Comment thread src/components/Editor/MediaHandler.vue Outdated
Comment thread src/helpers/files.js
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch 2 times, most recently 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 🚀

@enjeck enjeck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

non blocking comments:

Comment thread src/TextEditorEmbed.ts Outdated
Comment thread src/composables/useConnection.ts Outdated
Comment thread src/components/Menu/ToolBarLogic.js Outdated
Comment thread src/nodes/Table/TableView.vue Outdated
Comment thread src/createTable.ts Outdated
Comment thread src/views/FilesSettings.vue
Comment thread src/composables/useLinkFile.ts
Comment thread src/views/DirectEditing.vue Outdated
mejo- added 17 commits July 6, 2026 02:15
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>
Follow-up to e57ffe6.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
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>
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>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch from 1f4b605 to c9f2f6e Compare July 6, 2026 00:36
mejo- added 10 commits July 6, 2026 12:58
Avoids shared read/write ordering of the two registered listeners on
NcCheckRadioSwitch.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
The embed's debugYjs() was dead code as it called a non-existant
`debugYjsData` on the editor component.

The global `window.OCA.Text.debugYjs()` registered in
`src/helpers/debug.ts` already provides what we need.

Signed-off-by: Jonas <jonas@freesources.org>
The serializer expects a Node and doesn't support Fragment. A bug
revealed by Typescript.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Also make sure save request is only triggered with dirty editor state.

Signed-off-by: Jonas <jonas@freesources.org>
menuEntryRefs is stored by v-for with an index now, which already
ensures the order is correct.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- requested a review from benjaminfrueh July 6, 2026 12:10
@mejo- mejo- force-pushed the chore/upgrade-vue-3 branch from 447e8f0 to 6674ad3 Compare July 6, 2026 12:10
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.

4 participants