import { createEffect, createMemo, createSignal, onMount, For } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import { Soundwave } from './Soundwave' type MediaItem = any export default (props: { shout: Shout }) => { const media = createMemo(() => { if (props.shout.media) { console.debug(props.shout.media) return [...JSON.parse(props.shout.media)] } return [] }) let audioRef: HTMLAudioElement const [currentTrack, setCurrentTrack] = createSignal(media()[0]) const [paused, setPaused] = createSignal(true) const togglePlayPause = () => setPaused(!paused()) const playMedia = (m: MediaItem) => { audioRef.src = m.get('src') audioRef.play() } const [audioContext, setAudioContext] = createSignal() onMount(() => setAudioContext(new AudioContext())) createEffect(() => (paused() ? audioRef.play : audioRef.pause)()) return (
{props.shout.title}
{currentTrack().title}
{`${audioRef.currentTime} / ${audioRef.duration}`}
    {(m: MediaItem) => (
  • playMedia(m)} />
    {m.title}
  • )}
) }