fix(viewer): share Vue constructor from Viewer #5402
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Summary
$attrs is readonly
#5392Briefly:
<ViewerComponent>
from Text is rendered in Viewer's so everything that it uses must use the same Vue constructor as Viewer. Otherwise, there is a mix of Viewer's Vue constructor and Text's one in a single Virtual DOM, which is not fully supported by Vue.More details: nextcloud-libraries/nextcloud-vue#5267 (comment)
I don't know much about
tiptap
. Probably there is a cleaner way to provide Vue constructor to the plugin than using sharedsrc/ViewerVue.js
.Also, the best to use this everywhere instead of
import Vue from 'vue'
in modules that can be used in Viewer.🏁 Checklist
npm run lint
/npm run stylelint
/composer run cs:check
)