diff --git a/web/src/ui/timeline/content/index.css b/web/src/ui/timeline/content/index.css index 1c3c6b6..5ec0b7b 100644 --- a/web/src/ui/timeline/content/index.css +++ b/web/src/ui/timeline/content/index.css @@ -230,11 +230,6 @@ div.media-container { } } - &.video-container { - width: 100%; - height: 240px; - } - > a { display: flex; align-items: center; @@ -242,13 +237,8 @@ div.media-container { color: inherit; } - > img { + > img, > video { max-width: 100%; max-height: 100%; } - > video { - min-width: 320px; - max-width: 100%; - height: 100%; - } } diff --git a/web/src/ui/timeline/content/useMediaContent.tsx b/web/src/ui/timeline/content/useMediaContent.tsx index 8516e57..a98f426 100644 --- a/web/src/ui/timeline/content/useMediaContent.tsx +++ b/web/src/ui/timeline/content/useMediaContent.tsx @@ -16,7 +16,7 @@ import React, { CSSProperties, JSX, use } from "react" import { getEncryptedMediaURL, getMediaURL } from "@/api/media.ts" import type { EventType, MediaMessageEventContent } from "@/api/types" -import { ImageContainerSize, calculateMediaSize } from "@/util/mediasize.ts" +import { ImageContainerSize, calculateMediaSize, defaultVideoContainerSize } from "@/util/mediasize.ts" import { LightboxContext } from "../../modal/Lightbox.tsx" import DownloadIcon from "@/icons/download.svg?react" @@ -42,6 +42,7 @@ export const useMediaContent = ( onClick={use(LightboxContext)} />, "image-container", style.container] } else if (content.msgtype === "m.video") { + const style = calculateMediaSize(content.info?.w, content.info?.h, containerSize ?? defaultVideoContainerSize) const autoplay = false const controls = !content.info?.["fi.mau.hide_controls"] const loop = !!content.info?.["fi.mau.loop"] @@ -57,6 +58,7 @@ export const useMediaContent = ( return [, "video-container", {}] + , "video-container", style.container] } else if (content.msgtype === "m.audio") { return [