import { clsx } from 'clsx' import { Show } from 'solid-js' import { MediaItem } from '~/types/mediaitem' import { useLocalize } from '../../../context/localize' import { composeMediaItems } from '../../../utils/composeMediaItems' import { AudioPlayer } from '../../Article/AudioPlayer' import { DropArea } from '../../_shared/DropArea' // import { Buffer } from 'node:buffer' import styles from './AudioUploader.module.scss' if (window) window.Buffer = Buffer type Props = { class?: string audio: MediaItem[] baseFields?: { artist?: string date?: string genre?: string } onAudioChange: (index: number, value: MediaItem) => void onAudioAdd: (value: MediaItem[]) => void onAudioSorted: (value: MediaItem[]) => void } export const AudioUploader = (props: Props) => { const { t } = useLocalize() const handleMediaItemFieldChange = ( index: number, field: keyof MediaItem | string | symbol | number, value: string ) => { props.onAudioChange(index, { ...props.audio[index], [field]: value }) } const handleChangeIndex = (direction: 'up' | 'down', index: number) => { const media = [...props.audio] if (media?.length > 0) { if (direction === 'up' && index > 0) { const copy = media.splice(index, 1)[0] media.splice(index - 1, 0, copy) } else if (direction === 'down' && index < media.length - 1) { const copy = media.splice(index, 1)[0] media.splice(index + 1, 0, copy) } } props.onAudioSorted(media) } return (
0}> props.onAudioAdd(composeMediaItems(value, props.baseFields))} />
) }