//try to do dropzone, open Programming/hw/project/src/components/DropZone and check code //MyPlaylists && playerActions && AddTrack import React, { useState, useEffect, useRef, useCallback } from "react"; import { useDropzone } from "react-dropzone"; import { addTrackToPlaylist, deleteTrackFromPlaylist, // AddTrackFromLibToPlaylist } from "../actions/playerActions"; import { connect } from "react-redux"; import { Spin } from "antd"; import "../styles/library.css"; const AddTrack = ({ myPlaylist, addTrackToPlaylist, deleteTrackFromPlaylist, // AddTrackFromLibToPlaylist, // playlistId, // playlist, // form // setCurrentTrack, currentTrack }) => { // const onDrop = useCallback(acceptedFiles => { // // Do something with the files // console.log(acceptedFiles) // }, []) // const {getRootProps, getInputProps} = useDropzone({onDrop}) // console.log('currentTrack in AddTrack: ', currentTrack); let ref = useRef(); const [isLoading, setIsLoading] = useState(false); //let formData = new FormData(); const onDrop = useCallback((acceptedFiles) => { console.log(acceptedFiles) acceptedFiles.map((file) => { // function Upload(playlistId, playlist, form) { // setIsLoading(true); // let arrTracks = []; // playlist.tracks && // playlist.tracks.map((item) => arrTracks.push({ ["_id"]: item._id })); // // } let formData = new FormData(); formData.append("track", file); // Upload(playlistId, playlist, formData) // fetch("/track", { // method: "POST", // headers: localStorage.authToken // ? { Authorization: "Bearer " + localStorage.authToken } // : {}, // //body: new FormData(form), // body: formData, // }) // .then((res) => res.json()) //у чего есть then? у promise. // .then(async (track) => { // console.log("track: ", track); // await addTrackToPlaylist(playlistId, arrTracks, track._id); // setIsLoading(false); // }); // } }); }) // } function Upload(playlistId, playlist, formData) { setIsLoading(true); let arrTracks = []; playlist.tracks && playlist.tracks.map((item) => arrTracks.push({ ["_id"]: item._id })); fetch("/track", { method: "POST", headers: localStorage.authToken ? { Authorization: "Bearer " + localStorage.authToken } : {}, //body: new FormData(form), body: formData, }) .then((res) => res.json()) //у чего есть then? у promise. .then(async (track) => { console.log("track: ", track); await addTrackToPlaylist(playlistId, arrTracks, track._id); setIsLoading(false); }); console.log("arrTracks in upload: ", arrTracks); } const { getRootProps, getInputProps } = useDropzone({ onDrop }); return (