import React from 'react' import { AlertInfo, AmountInput, PaymentMethods, NewSelect, type Methods, OrderDiscount, LateralModal } from '../../molecules' import { Divider, Overline, RippleButton } from '../../atoms' import { getGlobalStyle } from '../../../utils' interface AsideProps { openAside?: boolean overline?: boolean loadingClients?: boolean payId?: string storeTables?: any[] paymentMethods?: Methods[] dataClientes?: any[] values?: { cliId: string ValueDelivery: string change: string tableId: string } errors?: { change: boolean ValueDelivery: boolean } discountPercent?: number discountAmount?: number handleClickAction?: () => void handleCloseAside?: () => void handleOpenAside?: () => void handleChange?: (e: { target: { name: string, value: any } }) => void dispatch?: React.Dispatch } export const AsideSales: React.FC = ({ openAside = false, loadingClients = false, payId = '', paymentMethods = [], storeTables = { storeTables: [] }, dataClientes = { data: [] }, values = { cliId: '', change: '', tableId: '', ValueDelivery: '' }, errors = { change: false, ValueDelivery: false }, overline = false, discountPercent = 0, discountAmount = 0, dispatch = () => { }, handleCloseAside = () => { }, handleOpenAside = () => { }, handleClickAction = () => { }, handleChange = () => { } }) => { const handleDiscount = (percent: number): void => { dispatch({ type: 'APPLY_DISCOUNT', payload: percent }); } return ( <> {overline && ( { handleOpenAside() handleCloseAside() }} style={React.useMemo(() => ({ padding: getGlobalStyle('--spacing-lg') }), [])} /> )} { handleOpenAside() handleCloseAside() }} style={{ padding: getGlobalStyle('--spacing-xs'), zIndex: getGlobalStyle('--z-index-modal'), height: '100%', top: 0, right: 0 }} > { handleClickAction() }} id='cliId' action={false} beforeLabel='Cliente' loading={loadingClients} name='cliId' onChange={(e) => { handleChange({ target: { name: String(e.target.name), value: e.target.value } }) }} optionName={['clientName', 'clientLastName']} options={dataClientes?.data ?? []} canDelete={true} handleClean={() => { return handleChange({ target: { name: 'cliId', value: '' } }) }} title='Selecciona un cliente' value={values?.cliId ?? ''} /> { return handleChange({ target: { name: String(e.target.name), value: e.target.value } }) }} title='Selecciona una mesa' value={values?.tableId ?? ''} handleClean={() => { return handleChange({ target: { name: 'tableId', value: '' } }) }} canDelete={true} id='tableId' /> { handleChange({ target: { name: 'change', value } }) }} placeholder='$ 0.00' prefix='$' value={values?.change} /> { handleChange({ target: { name: 'ValueDelivery', value } }) }} placeholder='$ 0.00' prefix='$' value={values?.ValueDelivery} /> { handleOpenAside() }} > Aceptar ) }