summaryrefslogtreecommitdiff
path: root/front/src/components/feed/Media.tsx
blob: 04ea1566297d6b8692dca25acab0856273173fe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import type { Media } from "@/types/trill";
interface Props {
  media: Media[];
}
function M({ media }: Props) {
  return (
    <div className="body-media">
      {media.map((m, i) => {
        return "video" in m.media ? (
          <video key={JSON.stringify(m) + i} src={m.media.video} controls />
        ) : "audio" in m.media ? (
          <audio key={JSON.stringify(m) + i} src={m.media.audio} controls />
        ) : "images" in m.media ? (
          <Images key={JSON.stringify(m) + i} urls={m.media.images} />
        ) : null;
      })}
    </div>
  );
}
export default M;

function Images({ urls }: { urls: string[] }) {
  return (
    <>
      {urls.map((u, i) => (
        <img
          key={u + i}
          className={`body-img body-img-1-of-${urls.length}`}
          src={u}
          alt=""
        />
      ))}
    </>
  );
}