From e408389cdb5cd06abf6d2f336b474cd430f8449a Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Wed, 13 Dec 2023 12:12:10 +0200 Subject: [PATCH] separate components for different media types --- .../app/src/Element/Embed/MediaElement.tsx | 114 +++++++++++------- 1 file changed, 72 insertions(+), 42 deletions(-) diff --git a/packages/app/src/Element/Embed/MediaElement.tsx b/packages/app/src/Element/Embed/MediaElement.tsx index 84eb0753..ebaf89b3 100644 --- a/packages/app/src/Element/Embed/MediaElement.tsx +++ b/packages/app/src/Element/Embed/MediaElement.tsx @@ -1,7 +1,7 @@ import { ProxyImg } from "@/Element/ProxyImg"; import useImgProxy from "@/Hooks/useImgProxy"; import { IMeta } from "@snort/system"; -import React, { CSSProperties, useEffect, useMemo, useRef } from "react"; +import React, { CSSProperties, useEffect, useMemo, useRef, useState } from "react"; import classNames from "classnames"; import { useInView } from "react-intersection-observer"; @@ -12,15 +12,59 @@ interface MediaElementProps { onMediaClick?: (e: React.MouseEvent) => void; } -export function MediaElement(props: MediaElementProps) { - const { proxy } = useImgProxy(); +interface AudioElementProps { + url: string; +} + +interface VideoElementProps { + url: string; + meta?: IMeta; +} + +interface ImageElementProps { + url: string; + meta?: IMeta; + onMediaClick?: (e: React.MouseEvent) => void; +} + +const AudioElement = ({ url }: AudioElementProps) => { + return