Skip to content

chore/upgrade vue 3 - #8619

Merged
mejo- merged 140 commits into
mainfrom
chore/upgrade-vue-3
Jul 6, 2026
Merged

chore/upgrade vue 3#8619
mejo- merged 140 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 5 commits July 6, 2026 15:27
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>
Comment thread src/composables/useLinkFile.ts Outdated
mejo- added 19 commits July 6, 2026 15:28
…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>
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- force-pushed the chore/upgrade-vue-3 branch from 6674ad3 to 08cf157 Compare July 6, 2026 13:31
Fixes navigating to three-dot menu in menubar with arrow keys

Signed-off-by: Jonas <jonas@freesources.org>
@mejo-
mejo- merged commit 83e1705 into main Jul 6, 2026
66 checks passed
@mejo-
mejo- deleted the chore/upgrade-vue-3 branch July 6, 2026 14:15
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 📝 Productivity team Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants