Skip to content

Commit 37d4ee9

Browse files
committed
fix(QTree): correctly handle node clickability for node > selectable: false (but expandable) #8327
1 parent 0509981 commit 37d4ee9

File tree

1 file changed

+39
-41
lines changed

1 file changed

+39
-41
lines changed

ui/src/components/tree/QTree.js

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -542,34 +542,34 @@ export default createComponent({
542542

543543
m.lazy === 'loading'
544544
? h(QSpinner, {
545-
class: 'q-tree__spinner',
546-
color: computedControlColor.value
547-
})
545+
class: 'q-tree__spinner',
546+
color: computedControlColor.value
547+
})
548548
: (
549549
isParent === true
550550
? h(QIcon, {
551-
class: 'q-tree__arrow'
551+
class: 'q-tree__arrow'
552552
+ (m.expanded === true ? ' q-tree__arrow--rotate' : ''),
553-
name: computedIcon.value,
554-
onClick (e) { onExpandClick(node, m, e) }
555-
})
553+
name: computedIcon.value,
554+
onClick (e) { onExpandClick(node, m, e) }
555+
})
556556
: null
557557
),
558558

559559
m.hasTicking === true && m.noTick !== true
560560
? h(QCheckbox, {
561-
class: 'q-tree__tickbox',
562-
modelValue: m.indeterminate === true ? null : m.ticked,
563-
color: computedControlColor.value,
564-
dark: isDark.value,
565-
dense: true,
566-
keepColor: true,
567-
disable: m.tickable !== true,
568-
onKeydown: stopAndPrevent,
569-
'onUpdate:modelValue': v => {
570-
onTickedClick(m, v)
571-
}
572-
})
561+
class: 'q-tree__tickbox',
562+
modelValue: m.indeterminate === true ? null : m.ticked,
563+
color: computedControlColor.value,
564+
dark: isDark.value,
565+
dense: true,
566+
keepColor: true,
567+
disable: m.tickable !== true,
568+
onKeydown: stopAndPrevent,
569+
'onUpdate:modelValue': v => {
570+
onTickedClick(m, v)
571+
}
572+
})
573573
: null,
574574

575575
h('div', {
@@ -587,22 +587,22 @@ export default createComponent({
587587

588588
isParent === true
589589
? h(QSlideTransition, {
590-
duration: props.duration,
591-
onShow,
592-
onHide
593-
}, () => withDirectives(
590+
duration: props.duration,
591+
onShow,
592+
onHide
593+
}, () => withDirectives(
594+
h('div', {
595+
class: 'q-tree__node-collapsible' + textColorClass.value,
596+
key: `${ key }__q`
597+
}, [
598+
body,
594599
h('div', {
595-
class: 'q-tree__node-collapsible' + textColorClass.value,
596-
key: `${ key }__q`
597-
}, [
598-
body,
599-
h('div', {
600-
class: 'q-tree__children'
600+
class: 'q-tree__children'
601601
+ (m.disabled === true ? ' q-tree__node--disabled' : '')
602-
}, children)
603-
]),
604-
[ [ vShow, m.expanded ] ]
605-
))
602+
}, children)
603+
]),
604+
[ [ vShow, m.expanded ] ]
605+
))
606606
: body
607607
])
608608
}
@@ -615,14 +615,12 @@ export default createComponent({
615615
function onClick (node, meta, e, keyboard) {
616616
keyboard !== true && blur(meta.key)
617617

618-
if (hasSelection.value) {
619-
if (meta.selectable) {
620-
if (props.noSelectionUnset === false) {
621-
emit('update:selected', meta.key !== props.selected ? meta.key : null)
622-
}
623-
else if (meta.key !== props.selected) {
624-
emit('update:selected', meta.key || null)
625-
}
618+
if (hasSelection.value && meta.selectable) {
619+
if (props.noSelectionUnset === false) {
620+
emit('update:selected', meta.key !== props.selected ? meta.key : null)
621+
}
622+
else if (meta.key !== props.selected) {
623+
emit('update:selected', meta.key || null)
626624
}
627625
}
628626
else {

0 commit comments

Comments
 (0)