import React, { useState, useEffect } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { useParams } from 'react-router-dom'; import Modal from './Modal'; import * as coreActions from '../../services/core/actions'; import * as uiActions from '../../services/ui/actions'; import { i18n, I18n } from '../../locale'; import { decodeUri } from '../../util/format'; import TextField from '../../components/Fields/TextField'; import Button from '../../components/Button'; const CreatePlaylist = () => { const { uris } = useParams(); const tracks_uris = uris ? decodeUri(uris).split(',') : undefined; const dispatch = useDispatch(); const [playlist, setPlaylist] = useState({ scheme: 'm3u', name: '', description: '', collaborative: false, public: false, }); const spotifyAvailable = useSelector((state) => state.spotify.access_token); useEffect( () => { dispatch(uiActions.setWindowTitle(i18n('modal.edit_playlist.title_create'))); }, [], ); const onChange = (updates) => setPlaylist({ ...playlist, ...updates }); const onSubmit = (e) => { e.preventDefault(); if (!playlist.name || playlist.name === '') { return false; } dispatch( coreActions.createPlaylist({ ...playlist, tracks_uris }), ); window.history.back(); return false; }; const fields = () => { switch (playlist.scheme) { case 'spotify': return (