import React from 'react';
import { useEffect, useState } from 'react';
import {useSelector, useDispatch } from 'react-redux'
import { useNavigate } from 'react-router-dom';
import {reset, create} from '../../../features/products/productSlice'
import {FaShoppingCart} from 'react-icons/fa'
import { LineProductItem } from './LineProductItem'
import { toast } from 'react-toastify'
import Spinner from '../../../components/Spinner'
import { useTranslation } from 'react-i18next';
import {SubGroupSearchBox} from '../../SearchBox/SubGroupSearchBox'
export const NewProductItem = ({ languagesOption }) => {
const {isLoading, isError, isSuccess, message } = useSelector((state) => state.product)
const [selectedValue, setSelectedValue] = useState([]);
const [lineProductsData, setLineProductsData] = useState([{ nameSelected: "product0",productName: "", language: "" }])
const [CO2Emissions, setCO2Emission] = useState('0')
const [waterEmissions, setWaterEmission] = useState('0')
const [amortization, setAmortization] = useState('0')
const { t } = useTranslation(["NewProduct"]);
const dispatch = useDispatch()
const navigate = useNavigate()
useEffect(() => {
if (isError)
toast.error(message)
if (isSuccess) {
dispatch(reset())
setLineProductsData([{nameSelected: "product0", productName: "", language: "" }])
toast.success(t("productSuccess"))
}
}, [isError, isSuccess, message, navigate, dispatch])
const onSubmit = (e) => {
e.preventDefault()
const newProduct = {
group : selectedValue,
CO2: CO2Emissions,
water: waterEmissions,
amortization: amortization,
names: lineProductsData.map((productLine) => (
{
name: productLine.productName,
language: productLine.language
}
))
}
dispatch(create(newProduct))
}
const addOrModifyLineProduct = (lineProduct) => {
if (languagesOption[0] !== undefined && lineProduct.language === '')
lineProduct.language = languagesOption[0].key;
let existingLine = lineProductsData.findIndex(lpd => lpd.nameSelected === lineProduct.nameSelected);
if (existingLine === -1) {
setLineProductsData(lineProductsData.concat(lineProduct))
}
else {
lineProductsData[existingLine] = lineProduct
setLineProductsData(lineProductsData)
}
}
const addNewProduct = () => {
addOrModifyLineProduct(
{ nameSelected: "product" + lineProductsData.length, productName: "", language: "" }
);
}
if (isLoading)
return