Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
710b350
refactor(links): move linkBubble plugin to plugins/links
max-nextcloud Mar 15, 2024
e6049b0
refactor(links): pass editor via options to LinkBubblePluginView
max-nextcloud Mar 15, 2024
d871277
refactor(links): untangle LinkBubblePluginView from editor
max-nextcloud Mar 15, 2024
e4340f8
refactor(links): use prosemirror tr and state to track clicks
max-nextcloud Mar 17, 2024
90b99be
refactor(links): move click handling into link bubble plugin
max-nextcloud Mar 17, 2024
356509b
refactor(links): only hand link mark to updateTooltip
max-nextcloud Mar 17, 2024
e30c78c
refactor(links): introduce setActiveLink function
max-nextcloud Mar 18, 2024
d956fdd
fix(links): also update if active was unset
max-nextcloud Mar 18, 2024
e02c5ad
refactor(links): operate on state with `linkNodeFromSelection`
max-nextcloud Mar 18, 2024
c1e4bd8
refactor(links): move linkNodeFromSelection into helper
max-nextcloud Mar 18, 2024
96097aa
refactor(links): handle selection changes in plugin
max-nextcloud Mar 18, 2024
4a3165b
refactor(links): use hideLinkBubble command for esc
max-nextcloud Mar 19, 2024
ed923f4
fix(links): simplify updateTooltip and handle active null
max-nextcloud Mar 19, 2024
4bc7586
fix(links): remove special handling for clicked and focus
max-nextcloud Mar 19, 2024
7fe10f9
fix(links): handle esc in DOMEvents rather than prop
max-nextcloud Mar 19, 2024
d79b67c
fix(links) handle linkNodeFromSelection returning false
max-nextcloud Mar 19, 2024
4f5277e
enh(links): close link bubble when opening preview toggle
max-nextcloud Mar 19, 2024
d582f38
fix(lint): add missing jsdoc comments to new files
max-nextcloud Mar 19, 2024
322a752
docs(preview): improve jsdocs for markdownit preview plugin
max-nextcloud Mar 19, 2024
8e78cb7
refactor(links): only get mark from selection
max-nextcloud Mar 20, 2024
385b246
refactor(links): get active link from selection
max-nextcloud Mar 20, 2024
c2fd1e5
fix(links): show bubble with cursor on the end of the link
max-nextcloud Mar 20, 2024
fb0a8ce
tests(links): ignore link bubble when reading link text
max-nextcloud Mar 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix(links): remove special handling for clicked and focus
Signed-off-by: Max <[email protected]>
  • Loading branch information
max-nextcloud committed Mar 20, 2024
commit 4bc7586fbd4f822f8225d93119575aa04032963d
6 changes: 2 additions & 4 deletions src/plugins/LinkBubblePluginView.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,14 @@ class LinkBubblePluginView {
update(view, oldState) {
const { active } = this.plugin.getState(view.state)
const { active: oldActive } = this.plugin.getState(oldState)
if (view.composing && !active.clicked) {
if (view.composing) {
return
}
if (active === oldActive) {
return
}
const hasBubbleFocus = this.#component.element.contains(document.activeElement)
const hasEditorFocus = view.hasFocus() || hasBubbleFocus
this.createTooltip()
if (active?.mark && (active.clicked || hasEditorFocus)) {
if (active?.mark) {
this.updateTooltip(view, active)
} else {
this.hide()
Expand Down
12 changes: 2 additions & 10 deletions src/plugins/links.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export const setActiveLink = (resolved) => (state, dispatch) => {
return false
}
const nodeStart = resolved.pos - resolved.textOffset
const active = { mark, nodeStart, clicked: true }
const active = { mark, nodeStart }
if (dispatch) {
dispatch(state.tr.setMeta(linkBubbleKey, { active }))
}
Expand Down Expand Up @@ -67,15 +67,7 @@ export function linkBubble(options) {
apply: (tr, cur) => {
const meta = tr.getMeta(linkBubbleKey)
if (meta && meta.active !== cur.active) {
if (!cur.active || !meta.active) {
return { ...cur, active: meta.active }
}
// keep clicked as long as the node stays the same
const sameNode = cur.active.nodeStart == meta.active.nodeStart
const clicked = meta.active.clicked
|| ( cur.active.clicked && sameNode )
const active = { ...meta.active, clicked }
return { ...cur, active }
return { ...cur, active: meta.active }
} else {
return cur
}
Expand Down