'use client'; import { Box, Typography, IconButton, TextField, Fade, Stack, Divider } from '@mui/material'; import { Add as AddIcon, Remove as RemoveIcon } from '@mui/icons-material'; import { Variant } from '@/types'; export default function StepChooseQuantity({ selectedVariant, quantity, handleQuantityChange, getTotalPrice, setQuantity, }: { selectedVariant: Variant | null, quantity: number, handleQuantityChange: (delta: number) => void, getTotalPrice: () => number, setQuantity: (val: number) => void, }) { if (!selectedVariant) return null; return ( Choose Quantity {selectedVariant.product.name} {selectedVariant.size} - {selectedVariant.color} ${selectedVariant.price.toFixed(2)} each Quantity handleQuantityChange(-1)} disabled={quantity <= 1} sx={{ border: '1px solid', borderColor: 'grey.300', '&:hover': { borderColor: 'primary.main' } }} > { const val = parseInt(e.target.value) || 1; if (val >= 1) setQuantity(val); }} inputProps={{ style: { textAlign: 'center', fontSize: '1.2rem', fontWeight: 600 }, min: 1 }} sx={{ width: 80, '& .MuiOutlinedInput-root': { '& fieldset': { borderColor: 'grey.300', }, '&:hover fieldset': { borderColor: 'primary.main', } } }} /> handleQuantityChange(1)} sx={{ border: '1px solid', borderColor: 'grey.300', '&:hover': { borderColor: 'primary.main' } }} > Total Price: ${getTotalPrice().toFixed(2)} ); }