import { createMemo, createSignal, onMount } from 'solid-js' import { For } from 'solid-js/web' import type { Shout } from '../../graphql/types.gen' import { drawAudio } from '../../utils/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 [] }) const [currentTrack, setCurrentTrack] = createSignal(media()[0]) const [paused, setPaused] = createSignal(true) const togglePlayPause = () => setPaused(!paused()) const playMedia = (m: MediaItem) => {} const [audioContext, setAudioContext] = createSignal() const currentTimer = createMemo(() => { // TODO: return current audio player track position return 1 }) onMount(() => { const actx = new AudioContext() setAudioContext(actx) drawAudio(actx, currentTrack().src) }) const SoundWave = () => return (
{props.shout.title}
{currentTrack().title}
{currentTimer() / currentTrack().length}
    {(m: MediaItem) => (
  • playMedia(m)}>
    {m.title}
  • )}
) }