import React, { useState } from 'react' //components import Dropdown from '../../Dropdown' //styles import { StyledModal, ModalHeader, WrapperInput, WrapperDropdown, WrapperButtons, VerticalSeperator, InputSmall, Button, IconWrong, IconCheck } from '../styles/modal' import { StyledImage, IconProduct, IconTag, IconDollar, IconLink } from './styles/addProduct' //redux import { useDispatch, useSelector } from 'react-redux'; import { productAdded } from '../../../redux/slices/groceryList/productsSlice'; export const ModalAddProduct = (props) => { const dispatch = useDispatch() const tags = useSelector(state => state.tags.entities) const [productName, setProductName] = useState(''); const [tag, setTag] = useState(''); const [price, setPrice] = useState(''); const [image, setImage] = useState(''); const [focused, setFocused] = React.useState(false) // const handleKeyDown = (event) => { // if (event.key === 'Enter' && productName !== '') { // setProductName('') // dispatch(addNewProduct({ productName, tag: 'Vegetables & fruit', price: 5, image: 'https://media-cdn.tripadvisor.com/media/photo-s/15/2d/23/07/domino-s-pizza.jpg' })) // } // } const handleSubmit = () => { if (props.visible && productName) { dispatch(productAdded({ productName, tag: tags.find(t => t.tagName === tag) ? tag : "uncategorized", price, image })); setProductName(''); setTag(''); setPrice(''); setImage(''); props.closeModal(); } else { alert('You should give a valid product name'); } } return ( Add product setProductName(text.target.value)} // onKeyDown={(event) => handleKeyDown(event)} placeholder="Product name" /> {productName ? : } setFocused(true)} onBlur={() => { setTimeout(() => { setFocused(false) }, 100) }} type="text" value={tag} onChange={(text) => setTag(text.target.value)} placeholder="Tag" /> {tag ? : } {focused && tag.tagName)} text={tag} setElement={setTag} /> } setPrice(text.target.value)} placeholder="Price" /> setImage(text.target.value)} placeholder="Image link" /> {image && } ) }