From 61bd20ea272af15d4ae9de5db7bb059c2efbf3e3 Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Sun, 12 Jul 2020 16:06:38 -0400 Subject: [PATCH] Issue #37 y #36 Agregar a la lista --- package-lock.json | 24 +++++ package.json | 1 + src/components/AddToList.jsx | 157 +++++++++++++++++++++++++++++- src/components/AddToList.scss | 59 ++++++++++- src/components/Button.jsx | 3 +- src/components/Button.scss | 3 + src/components/Entity.jsx | 2 +- src/components/SocialNetworks.jsx | 2 +- src/services/auth_service.js | 8 +- src/services/list_service.js | 19 ++++ src/services/utils.js | 4 + src/views/Artist.jsx | 5 +- src/views/Disc.jsx | 5 +- src/views/Release.jsx | 2 +- src/views/Song.jsx | 2 +- 15 files changed, 285 insertions(+), 11 deletions(-) create mode 100644 src/services/list_service.js diff --git a/package-lock.json b/package-lock.json index f81d195..5f88250 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5461,6 +5461,11 @@ "strip-eof": "^1.0.0" } }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -11347,6 +11352,17 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "react-modal": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.11.2.tgz", + "integrity": "sha512-o8gvvCOFaG1T7W6JUvsYjRjMVToLZgLIsi5kdhFIQCtHxDkA47LznX62j+l6YQkpXDbvQegsDyxe/+JJsFQN7w==", + "requires": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + } + }, "react-router": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", @@ -13835,6 +13851,14 @@ "makeerror": "1.0.x" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", diff --git a/package.json b/package.json index a56f4f3..76a21b1 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "react-dom": "^16.13.1", "react-icons": "^3.10.0", "react-json-view": "^1.19.1", + "react-modal": "^3.11.2", "react-router-dom": "^5.2.0", "react-scripts": "3.4.1", "react-tabs": "^3.1.1", diff --git a/src/components/AddToList.jsx b/src/components/AddToList.jsx index 55067b6..17a343f 100644 --- a/src/components/AddToList.jsx +++ b/src/components/AddToList.jsx @@ -1,7 +1,160 @@ -import React from "react"; +import React, {useState} from "react"; +import Modal from 'react-modal'; import {Button} from './Button'; import './AddToList.scss'; +import {useStateValue} from "../services/State"; +import {wait} from "../services/utils"; +import {AiFillStar, AiOutlineStar} from "react-icons/all"; +import {add_to_list} from "../services/list_service"; + +const Star = (props) => { + return ( +
+ {props.selected ? + : + + } +
+ ) +} + +const Stars = (props) => { + const getSelected = (i) => { + return i <= props.stars + } + + const handleStarClick = (i) => () => { + if (props.stars === i) { + props.onChange(0); + } else { + props.onChange(i); + } + } + + const stars = [ + , + , + , + , + , + ] + + return ( +
+ {stars} +
+ ); +} + +const Opinion = (props) => { + const handleInput = (event) => { + props.onChange(event.target.value); + } + + return ( +