+
+
+ :
+ }
+ />
+
+
+ moveRange(event)}
+ onTouchstart={() => (isRange.value = true)}
+ onTouchend={() => (isRange.value = false)}
+ onMousedown={() => (isRange.value = true)}
+ onMouseup={() => (isRange.value = false)}
+ />
+ {getCurrentTime()}
+
+
:
}
+ onClick={() => (showTranscript.value = !showTranscript.value)}
+ />
+
+ {showTranscript.value && (
+
+ {transcriptNotReadyStatus.value ?? props.voice.transcript}
+
+ )}
+
+ )
+}, {
+ props: ['voice']
+})
diff --git a/src/ui/messenger/attaches/Attaches.tsx b/src/ui/messenger/attaches/Attaches.tsx
index 89899256..49be565f 100644
--- a/src/ui/messenger/attaches/Attaches.tsx
+++ b/src/ui/messenger/attaches/Attaches.tsx
@@ -2,6 +2,7 @@ import { defineComponent } from 'vue'
import * as Attach from 'model/Attach'
import { useEnv } from 'hooks'
import { ClassName } from 'misc/utils'
+import { AttachVoice } from './AttachVoice/AttachVoice'
import { AttachLink } from 'ui/messenger/attaches/AttachLink/AttachLink'
import { AttachPhotos } from 'ui/messenger/attaches/AttachPhotos/AttachPhotos'
import { AttachSticker } from 'ui/messenger/attaches/AttachSticker/AttachSticker'
@@ -22,6 +23,7 @@ export const Attaches = defineComponent((props) => {
{props.attaches.photos && }
{props.attaches.links?.map((link) => )}
{props.attaches.wall && }
+ {props.attaches.voice && }
{props.attaches.unknown?.map((unknown) => (
{lang.use('me_unknown_attach')} ({unknown.type})
diff --git a/src/ui/ui/ButtonIcon/ButtonIcon.css b/src/ui/ui/ButtonIcon/ButtonIcon.css
index 1287c94a..d954cb7f 100644
--- a/src/ui/ui/ButtonIcon/ButtonIcon.css
+++ b/src/ui/ui/ButtonIcon/ButtonIcon.css
@@ -5,6 +5,7 @@
flex: none;
position: relative;
border-radius: 6px;
+ line-height: 0;
transition: background-color var(--fastTransition), opacity var(--fastTransition);
}
diff --git a/src/vue-jsx-events.d.ts b/src/vue-jsx-events.d.ts
index 4b81c564..dca408e3 100644
--- a/src/vue-jsx-events.d.ts
+++ b/src/vue-jsx-events.d.ts
@@ -35,6 +35,7 @@ declare module 'vue' {
interface InputHTMLAttributes {
onKeydown?: (event: KeyboardEvent) => void
+ onChange?: (event: InputEvent) => void
onInput?: (event: InputEvent) => void
}