diff --git a/src/components/AddSong.js b/src/components/AddSong.js index a26ea08c..b9b84f7a 100644 --- a/src/components/AddSong.js +++ b/src/components/AddSong.js @@ -44,6 +44,7 @@ function AddSong() { const [url, setUrl] = React.useState(""); const [dialog, showDialog] = React.useState(false); const [playable, setPlayable] = React.useState(false); + const [readyToAdding, setReadyToAdding] = React.useState(false); const { data } = useSubscription(GET_SONGS); const [song, setSong] = React.useState({ title: "", @@ -110,13 +111,7 @@ function AddSong() { try { const { url, thumbnail, duration, title, artist } = song; await addSong({ - variables: { - url: url.length > 0 ? url : null, - duration: duration > 0 ? duration : null, - thumbnail: thumbnail.length > 0 ? thumbnail : null, - artist: artist.length > 0 ? artist : null, - title: title.length > 0 ? title : null, - }, + variables: { url, duration, thumbnail, artist, title }, }); handleCloseDialog(); setSong({ @@ -143,6 +138,15 @@ function AddSong() { setPlayable(isPlayable); }, [url]); // its gonna be dependent and sync with the url + React.useEffect(() => { + const { url, thumbnail, duration, title, artist } = song; + if (url?.length && duration && thumbnail?.length && artist?.length && title?.length) { + setReadyToAdding(true); + } else { + setReadyToAdding(false); + } + }, [song]); + function handleCloseDialog() { showDialog(false); } @@ -217,7 +221,12 @@ function AddSong() { -