Skip to content

Commit c3c58f2

Browse files
committed
fix: ClipElement も合わせて修正する
- `MessageElement` の挙動と一致しない部分を修正
1 parent f882e09 commit c3c58f2

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/components/Main/MainView/MessageElement/ClipElement.vue

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@
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'
3639
import { useMessagesStore } from '/@/store/entities/messages'
3740
import { useResponsiveStore } from '/@/store/ui/responsive'
3841
import type { MessageId } from '/@/types/entity-ids'
42+
import { ref } from 'vue'
43+
import { useMessageEditingStateStore } from '/@/store/ui/messageEditingStateStore'
3944
4045
const 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+
4956
const { messagesMap } = useMessagesStore()
5057
58+
const { editingMessageId } = useMessageEditingStateStore()
59+
const isEditing = computed(() => props.messageId === editingMessageId.value)
60+
5161
const bodyRef = shallowRef<HTMLDivElement | null>(null)
5262
const { isMobile } = useResponsiveStore()
5363
const message = computed(() => messagesMap.value.get(props.messageId))
@@ -64,6 +74,9 @@ useElementRenderObserver(
6474
6575
const { 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

Comments
 (0)