Components › Records & data › Voice message › Video message

Video message

canon

A 16:9 video in a chat bubble with duration on a scrim, a progress bar, a time row, Přepis link and optional caption.

acrm !4918 (DS) + !4935 (Komunikace) + !4956 (44 px tap target), prototype proto/chat-hlasove-zpravy@6ed969dc9 (owner approved 8 Oct 2026). Family split from discussion/voice-message on 11 Oct 2026 (owner R43 a). Not on dev with data (stories only). Canon 14 Oct 2026: dev check after !4957 + !4982 — 390 px 64 bars × 3.7 px, gap 0; time without tabular-nums (StableTime). Signed off by AD. Own stories + light/dark baseline: acrm !5079 (Default · In-out · States; fixed wrapping of „Přepis se nepodařil · Zkusit znovu“ under the 200 px circle).

Used in no file in the app (main)

Import

import { VideoMessage } from '@acrm/ui'

Props

VideoMessage packages/ui/src/components/VoiceMessage.tsx

NameTypeDefaultDescription
captionstring—Popisek videa pod přehrávačem (text zprávy).
posterstring—Náhledový snímek (první políčko); bez něj tmavý podklad.
src *string—URL média (GET /chats/attachments/:id).
durationSecnumber | null—Délka z DTO; bez ní (0/undefined) se použije délka z metadat média.
outboolean—true = odchozí zpráva (akcentní bublina, primární play).
timestring—Čas zprávy, už naformátovaný hostitelem.
state'sent' | 'delivered' | 'read'—Stav doručení odchozí zprávy; read = akcentní checks.
stateLabelstring—Sr-only popisek stavu doručení.
fromLabelstring—Kdo zprávu poslal (sr-only prefix, jako ChatBubble.fromLabel).
publishedboolean—IM-3b — zpráva je zveřejněná u kontaktu: třída .pub jako u ChatBubble.published; tvar bubliny se NEMĚNÍ (zadavatel 13. 10. 2026), zveřejnění nese metaExtra.
metaExtraReactNode—IM-3b — drobná meta za časem (kdo · kdy zveřejnil / „Soukromé"), jako ChatBubble.metaExtra.
reactionsReactNode—Reakce na zprávu (odznaky přes spodní hranu bubliny) — jako ChatBubble.reactions.
reactableboolean—Na zprávu jde reagovat (ťuknutí ukáže „+") — jako ChatBubble.reactable.
transcriptVoiceTranscript | null——
onRetry() => void——
transcriptOpenboolean—Přepis rozbalený (řízené); bez toho se drží lokálně (výchozí sbalený).
defaultTranscriptOpenboolean——
onTranscriptOpenChange(open: boolean) => void——
onPlay() => void—Spuštění přehrávání (host zruší „nepřehráno").
onEnded() => void—Dohrání do konce (host naváže další nepřehranou zprávu).
localestring—Jazyk pro názvy jazyků přepisu (výchozí cs).
labelsPartial<VoiceMessageLabels>——
classNamestring——
refRef<VoiceMessageHandle>——

CSS classes

.vmx.vv-msg.vv-frame.vv-dur.vv-bar.vv-row.vn-ico.vm-time.vm-grow.vm-trlink.vm-trst.vm-tr.vm-tr-meta.vm-tr-t.vm-seg.vm-copy

Files