Skip to content

Commit

Permalink
Merge pull request #2872 from nextcloud/fix/2869-link-detection
Browse files Browse the repository at this point in the history
fix: update link menububble on editor updates
  • Loading branch information
max-nextcloud authored Sep 8, 2022
2 parents 5db0151 + 84beeb4 commit 5353e5d
Show file tree
Hide file tree
Showing 13 changed files with 36 additions and 25 deletions.
4 changes: 2 additions & 2 deletions js/editor-rich.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/editor-rich.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/editor.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/editor.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-files.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-files.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-public.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-public.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-text.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-text.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-viewer.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-viewer.js.map

Large diffs are not rendered by default.

25 changes: 18 additions & 7 deletions src/components/MenuBubble.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,25 +44,25 @@
<template v-else>
<button class="menububble__button"
data-text-bubble-action="add-link"
:class="{ 'is-active': isActive('link') }"
:class="{ 'is-active': isActive }"
@click="showLinkMenu()">
<LinkIcon />
<span class="menububble__buttontext">
{{ isActive('link') ? t('text', 'Update Link') : t('text', 'Add Link') }}
{{ isActive ? t('text', 'Update Link') : t('text', 'Add Link') }}
</span>
</button>
<button v-if="!isUsingDirectEditing"
data-text-bubble-action="add-file"
class="menububble__button"
:class="{ 'is-active': isActive('link') }"
:class="{ 'is-active': isActive }"
@click="selectFile()">
<Document />
<span class="menububble__buttontext">{{ t('text', 'Link file') }}</span>
</button>
<button v-if="isActive('link')"
<button v-if="isActive"
class="menububble__button"
data-text-bubble-action="remove-link"
:class="{ 'is-active': isActive('link') }"
:class="{ 'is-active': isActive }"
@click="removeLinkUrl()">
<Delete />
<span class="menububble__buttontext">
Expand All @@ -74,6 +74,7 @@
</template>

<script>
import debounce from 'debounce'
import { BubbleMenu } from '@tiptap/vue-2'
import { getMarkAttributes } from '@tiptap/core'
import { getCurrentUser } from '@nextcloud/auth'
Expand Down Expand Up @@ -113,11 +114,21 @@ export default {
},
data: () => {
return {
isActive: false,
linkUrl: null,
linkMenuIsActive: false,
isUsingDirectEditing: loadState('text', 'directEditingToken', null) !== null,
}
},
mounted() {
this.$_updateIsActive = debounce(this.updateIsActive.bind(this), 50)
this.$editor.on('update', this.$_updateIsActive)
this.$editor.on('selectionUpdate', this.$_updateIsActive)
},
beforeDestroy() {
this.$editor.off('update', this.$_updateIsActive)
this.$editor.off('selectionUpdate', this.$_updateIsActive)
},
methods: {
showLinkMenu() {
const attrs = getMarkAttributes(this.$editor.state, 'link')
Expand Down Expand Up @@ -171,8 +182,8 @@ export default {
removeLinkUrl() {
this.$editor.chain().unsetLink().focus().run()
},
isActive(selector, args = {}) {
return this.$editor.isActive(selector, args)
updateIsActive() {
this.isActive = this.$editor.isActive('link')
},
},
}
Expand Down

0 comments on commit 5353e5d

Please sign in to comment.