import React, { useState } from 'react' import { NorthTexasGreen } from '../../../assets/colors' import { IconMiniCheck } from '../../../assets/icons' import { Column, RippleButton, Tag } from '../../atoms' import { ChoicesHeader, InputHooks } from '../../molecules' import { AwesomeModal, List, ResisesColumns } from '../../organisms' import { FormExtra } from './FormExtra' import { BodyDnd } from './styled' import { getGlobalStyle } from '../../../helpers' interface IOptionalExtraProducts { title: string dataListIds: string[] data: any loadingEditSubOptional: any selectedItem: any selectedExtra: any openModalEditExtra: boolean loadingCreateSubDessert: boolean handleCheck: any editOneItem: any handleRemoveList: any setTitle: any setCheck: any handleChangeItems: any handleAdd: any removeOneItem: any handleAddList: any setData: any editOneExtra: any setSelectedExtra: (args: any) => void setOpenModalEditExtra: (boolean: boolean) => void } export const OptionalExtraProducts: React.FC = ({ title = '', dataListIds = [], data = { lists: [] }, loadingCreateSubDessert = false, loadingEditSubOptional, selectedItem = { id: '', listID: '' }, selectedExtra, openModalEditExtra = false, setSelectedExtra = (args) => { return args }, setOpenModalEditExtra = (boolean: boolean) => { return boolean }, handleCheck = () => { }, editOneItem = () => { }, handleRemoveList = () => { }, setTitle = () => { }, setCheck = {}, handleChangeItems = () => { }, handleAdd = () => { }, removeOneItem = () => { }, handleAddList = () => { }, setData = () => { }, editOneExtra = () => { } }) => { // STATES const [numberLimit, setNumberLimit] = useState(1) return (
{dataListIds?.map((listID, index) => { const list = data.lists[listID] const numberLimit = list?.numberLimit const incompleteList = Number(list.numberLimit) === Number(list.cards.length) const messageLimit = `${numberLimit} ${numberLimit > 1 ? 'opciones' : 'opción' }` return ( { return handleRemoveList(index, listID) }} handleEdit={() => { setOpenModalEditExtra(!openModalEditExtra) return setSelectedExtra(list) }} />
{incompleteList && ( )}
{ return handleChangeItems({ listID, id: list.id, value, name: 'list_value' }) }} onKeyDown={(e: React.KeyboardEvent) => { if (e.key === 'Enter' && !incompleteList) { handleAdd({ listId: listID }) } }} title='Agrega un subproducto' value={list?.value} /> { if (!incompleteList) { return handleAdd({ listId: listID }) } return null }} onKeyPress={(e: React.KeyboardEvent) => { if (e.key === 'Enter' && !incompleteList) { handleAdd({ listId: listID }) } }} > Agregar
) })}
{ setSelectedExtra({}) return false }} onHide={() => { setSelectedExtra({}) return setOpenModalEditExtra(!openModalEditExtra) }} padding={0} question={false} show={openModalEditExtra} size='600px' zIndex={getGlobalStyle('--z-index-9999')} > { editOneExtra({ ...selectedExtra }) }} style={{ margin: 'var(--spacing-xs) auto', justifyContent: 'center', alignItems: 'center', display: 'flex' }} > Guardar
) }