Browse Source

create Playlist

Stepanova Asya 1 year ago
parent
commit
ffb3eb4c6f
4 changed files with 71 additions and 0 deletions
  1. 71 0
      src/components/createPlaylist.js
  2. BIN
      src/images/card.png
  3. BIN
      src/images/logout.png
  4. BIN
      src/images/musicico.png

+ 71 - 0
src/components/createPlaylist.js

@@ -0,0 +1,71 @@
+import React, {useState} from 'react';
+// import {Link} from 'react-router-dom';
+// import { actionAuthLogin } from '../store/authReducer';
+// import { store } from '../store/store';
+
+
+
+function sendForm (url, data) {
+    fetch(`http://player-api/api/${url}`, {
+        method: 'POST',
+        body: data,
+        headers: {
+          
+          ...(localStorage.authToken ? {"Authorization": "Bearer " + localStorage.authToken} : {})
+          
+          },
+      }).then(res => res.json())
+      .then(data => {
+          if(data.token) {
+            console.log(data)
+            return data
+          } else {
+            //console.log(data.login[0]); 
+          }
+      })
+}
+
+
+export const CreatePlaylist = (props) => {
+  const [name, setName] = useState('');
+  const [description, setDescription] = useState('');
+  const [privat, setPrivat] = useState(0);
+  const [image, setImage] = useState(null);
+
+  const PostCreatePlaylist = async(event)  =>{
+    event.preventDefault();
+    const data = new FormData();
+
+    data.append("name", name);
+    data.append("description", description);
+    data.append("private", privat);
+    data.append("photo",  image, image.name);
+
+    sendForm('playlists/create', data);
+  }
+
+  return <>
+    <form onSubmit={PostCreatePlaylist} className="authorization center align-items-center justify-content-center  d-flex">
+
+        <div className="border p-3 col-9">
+        <h4 className="w-100 text-center">Create Playlist</h4>
+            <hr/>
+            <div className="d-flex justify-content-between">
+              <div className="w-auto">
+                  <label  className="form-label">Image</label>
+                  <input type="file" name="picture" accept="image/*" id="file" className='form-control mb-3' onChange={(e) => setImage(e.target.files[0])} multiple={false}/>
+                  <input className="form-check-input me-3" type="checkbox" id="flexCheckIndeterminate" checked={privat} onChange={e => setPrivat(e.target.checked? 1 : 0)}/>
+                  <label className="form-check-label" for="flexCheckIndeterminate">Private?</label>    
+              </div>
+              <div className="w-50">
+                  <label  className="form-label">Name</label><br/>
+                  <input type="text" id="username" className='input form-control mb-3' value={name} onChange={e => setName(e.target.value)}/>
+                  <label  className="form-label">Description</label>
+                  <textarea type="password" id="password" className='form-control mb-3' value={description} onChange={e => setDescription(e.target.value)}/>
+              </div>
+            </div>
+            <button type='submit' className="btn btn-outline-danger" onClick={props.onHide} >Create</button>
+        </div>
+    </form>
+  </>
+}

BIN
src/images/card.png


BIN
src/images/logout.png


BIN
src/images/musicico.png