55 ref =" bodyRef"
66 :class =" $style.body"
77 :data-is-mobile =" $boolAttr(isMobile)"
8+ :data-is-editing =" $boolAttr(isEditing)"
9+ :data-is-active =" $boolAttr(isActive)"
810 @pointerenter =" onPointerEnter"
911 @click =" onClick"
1012 @mouseleave =" onMouseLeave"
1113 >
1214 <MessageTools
15+ v-model:is-active =" isActive"
1316 :class =" $style.tools"
14- :show =" isHovered "
17+ :show =" showMessageTools "
1518 :message-id =" messageId"
1619 is-minimum
1720 />
@@ -36,6 +39,8 @@ import useEmbeddings from '/@/composables/message/useEmbeddings'
3639import { useMessagesStore } from ' /@/store/entities/messages'
3740import { useResponsiveStore } from ' /@/store/ui/responsive'
3841import type { MessageId } from ' /@/types/entity-ids'
42+ import { ref } from ' vue'
43+ import { useMessageEditingStateStore } from ' /@/store/ui/messageEditingStateStore'
3944
4045const props = defineProps <{
4146 messageId: MessageId
@@ -46,8 +51,13 @@ const emit = defineEmits<{
4651 (e : ' changeHeight' , _data : ChangeHeightData ): void
4752}>()
4853
54+ const isActive = ref (false )
55+
4956const { messagesMap } = useMessagesStore ()
5057
58+ const { editingMessageId } = useMessageEditingStateStore ()
59+ const isEditing = computed (() => props .messageId === editingMessageId .value )
60+
5161const bodyRef = shallowRef <HTMLDivElement | null >(null )
5262const { isMobile } = useResponsiveStore ()
5363const message = computed (() => messagesMap .value .get (props .messageId ))
@@ -64,6 +74,9 @@ useElementRenderObserver(
6474
6575const { isHovered, onPointerEnter, onClick, onMouseLeave, onClickOutside } =
6676 useMessageToolsHover ()
77+ const showMessageTools = computed (
78+ () => (isHovered .value && ! isEditing .value ) || isActive .value
79+ )
6780 </script >
6881
6982<style lang="scss" module>
@@ -80,8 +93,11 @@ $messagePaddingMobile: 16px;
8093 & [data-is-mobile ] {
8194 padding : 8px $messagePaddingMobile ;
8295 }
83- & :hover {
84- background : var (--specific-message-hover-background );
96+ & :not ([data-is-editing ]) {
97+ & [data-is-active ],
98+ & :hover {
99+ background : var (--specific-message-hover-background );
100+ }
85101 }
86102}
87103
0 commit comments