Skip to content

Commit 54c7ee6

Browse files
committed
Make return proxyRefs
1 parent 8aefac0 commit 54c7ee6

File tree

4 files changed

+31
-36
lines changed

4 files changed

+31
-36
lines changed

app/gui/src/project-view/components/GraphEditor/GraphNode.vue

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -454,12 +454,7 @@ const contextMenuActions = computed<DisplayableActionName[]>(() =>
454454
nodeSelection.selected.size > 1 ? multiSelectionMenuActions : nodeMenuActions,
455455
)
456456
457-
const {
458-
menuOpen: alignmentMenuOpen,
459-
menuOpenModel: alignmentMenuOpenModel,
460-
handleMenuEnter: handleAlignmentMenuEnter,
461-
handleMenuLeave: handleAlignmentMenuLeave,
462-
} = useHoverMenu()
457+
const alignmentMenu = useHoverMenu()
463458
464459
const contextMenuTrigger = ref<InstanceType<typeof ContextMenuTrigger>>()
465460
const alignmentMenuTrigger = ref<HTMLElement>()
@@ -475,13 +470,16 @@ const { floatingStyles: alignmentMenuStyles, update: updateAlignmentMenu } = use
475470
},
476471
)
477472
478-
watch(alignmentMenuOpen, (open) => {
473+
watch(
474+
() => alignmentMenu.menuOpen,
475+
(open) => {
479476
if (open) nextTick(updateAlignmentMenu)
480-
})
477+
},
478+
)
481479
482480
function closeAllMenus() {
483481
// Close both menus
484-
alignmentMenuOpen.value = false
482+
alignmentMenu.menuOpen = false
485483
contextMenuTrigger.value?.close()
486484
}
487485
@@ -546,29 +544,29 @@ resizeHandles.onResizeHeight((value) => emit('update:height', value))
546544
ref="contextMenuTrigger"
547545
:actions="contextMenuActions"
548546
@contextmenu="ensureSelected"
549-
@hidden="(alignmentMenuOpen = false)"
547+
@hidden="(alignmentMenu.menuOpen = false)"
550548
>
551549
<template #menuElements>
552550
<div v-if="nodeSelection.selected.size > 1">
553551
<div
554552
ref="alignmentMenuTrigger"
555553
class="alignmentSubmenuTrigger"
556-
@pointerenter="handleAlignmentMenuEnter"
557-
@pointerleave="handleAlignmentMenuLeave"
554+
@pointerenter="alignmentMenu.handleMenuEnter"
555+
@pointerleave="alignmentMenu.handleMenuLeave"
558556
>
559-
<MenuButton v-model="alignmentMenuOpenModel" class="alignmentSubmenuEntry">
557+
<MenuButton v-model="alignmentMenu.menuOpenModel" class="alignmentSubmenuEntry">
560558
<SvgIcon name="align_left" class="rowIcon" />
561559
<span>Align</span>
562560
<SvgIcon name="arrow_right_head_only" class="submenuArrow" />
563561
</MenuButton>
564562
</div>
565563
<div
566-
v-if="alignmentMenuOpen"
564+
v-if="alignmentMenu.menuOpen"
567565
ref="alignmentMenuPanel"
568566
class="alignmentSubmenuPanel"
569567
:style="alignmentMenuStyles"
570-
@pointerenter="handleAlignmentMenuEnter"
571-
@pointerleave="handleAlignmentMenuLeave"
568+
@pointerenter="alignmentMenu.handleMenuEnter"
569+
@pointerleave="alignmentMenu.handleMenuLeave"
572570
>
573571
<ActionMenu class="alignmentMenu" :actions="alignmentMenuActions" @close="closeAllMenus" />
574572
</div>

app/gui/src/project-view/components/SelectionMenu.vue

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,7 @@ watch(
2828
},
2929
)
3030
31-
const {
32-
menuOpen: alignmentMenuOpen,
33-
menuOpenModel: alignmentMenuOpenModel,
34-
handleMenuEnter: handleAlignmentMenuEnter,
35-
handleMenuLeave: handleAlignmentMenuLeave,
36-
} = useHoverMenu()
31+
const alignmentMenu = useHoverMenu()
3732
</script>
3833

3934
<template>
@@ -51,31 +46,31 @@ const {
5146
/>
5247
</span>
5348
<DropdownMenu
54-
v-model:open="alignmentMenuOpenModel"
49+
v-model:open="alignmentMenu.menuOpenModel"
5550
placement="bottom-start"
5651
title="Align"
5752
alwaysShowArrow
58-
@pointerenter="handleAlignmentMenuEnter"
59-
@pointerleave="handleAlignmentMenuLeave"
53+
@pointerenter="alignmentMenu.handleMenuEnter"
54+
@pointerleave="alignmentMenu.handleMenuLeave"
6055
>
6156
<template #button>
6257
<SvgIcon name="align_left" />
6358
</template>
6459
<template #menu>
6560
<div
6661
class="alignmentMenuHover"
67-
@pointerenter="handleAlignmentMenuEnter"
68-
@pointerleave="handleAlignmentMenuLeave"
62+
@pointerenter="alignmentMenu.handleMenuEnter"
63+
@pointerleave="alignmentMenu.handleMenuLeave"
6964
>
7065
<MenuPanel class="alignmentMenu">
7166
<div class="alignmentMenuRow horizontal">
72-
<ActionButton action="components.alignLeft" @click="alignmentMenuOpen = false" />
73-
<ActionButton action="components.alignCenter" @click="alignmentMenuOpen = false" />
74-
<ActionButton action="components.alignRight" @click="alignmentMenuOpen = false" />
67+
<ActionButton action="components.alignLeft" @click="alignmentMenu.menuOpen = false" />
68+
<ActionButton action="components.alignCenter" @click="alignmentMenu.menuOpen = false" />
69+
<ActionButton action="components.alignRight" @click="alignmentMenu.menuOpen = false" />
7570
</div>
7671
<div class="alignmentMenuRow vertical">
77-
<ActionButton action="components.alignTop" @click="alignmentMenuOpen = false" />
78-
<ActionButton action="components.alignBottom" @click="alignmentMenuOpen = false" />
72+
<ActionButton action="components.alignTop" @click="alignmentMenu.menuOpen = false" />
73+
<ActionButton action="components.alignBottom" @click="alignmentMenu.menuOpen = false" />
7974
</div>
8075
</MenuPanel>
8176
</div>

app/gui/src/project-view/composables/hoverMenu.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { computed, onUnmounted, ref, type Ref } from 'vue'
1+
import { proxyRefs } from '$/utils/reactivity'
2+
import { computed, onUnmounted, ref } from 'vue'
23

34
const HOVER_OPEN_DELAY_MS = 200
45
const HOVER_CLOSE_DELAY_MS = 150
@@ -103,14 +104,14 @@ export function useHoverMenu(options: UseHoverMenuOptions = {}) {
103104
clearMenuCloseTimeout()
104105
})
105106

106-
return {
107+
return proxyRefs({
107108
/** Whether the menu is currently open */
108-
menuOpen: menuOpen as Ref<boolean>,
109+
menuOpen,
109110
/** Two-way binding model for v-model:open that respects hover state */
110111
menuOpenModel,
111112
/** Call this when pointer enters the hover area */
112113
handleMenuEnter,
113114
/** Call this when pointer leaves the hover area */
114115
handleMenuLeave,
115-
}
116+
})
116117
}

app/gui/tsconfig.app.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -725,6 +725,7 @@
725725
"./src/project-view/composables/dragging.ts",
726726
"./src/project-view/composables/events.ts",
727727
"./src/project-view/composables/focus.ts",
728+
"./src/project-view/composables/hoverMenu.ts",
728729
"./src/project-view/composables/keyboard.ts",
729730
"./src/project-view/composables/navigator.ts",
730731
"./src/project-view/composables/nodeColors.ts",

0 commit comments

Comments
 (0)