import { ref, watch } from 'vue' import type { Playlist } from '../types' import { SwitchInput } from './SwitchInput.vine' export const EditPlaylistModal = ({ playlist, mode = 'edit', }: { playlist: Playlist, mode?: 'create' | 'edit', }) => { const emit = vineEmits(['close', 'update-playlist', 'create-playlist']) const local = ref(playlist ?? { name: '', comment: '', isPublic: false }), save = () => { if (!local.value.name?.trim()) { alert('Name cannot be empty') return } if (mode !== 'edit') { emit('create-playlist', local.value.name) } else { emit('update-playlist', { ...local.value }) } emit('close') } watch( () => playlist, (newVal) => { local.value = newVal ?? { name: '', comment: '', isPublic: false } }, { immediate: true } ) return vine`

{{ mode === 'edit' ? 'Edit Playlist' : 'New Playlist' }}