// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 import Link from 'next/link'; import { useCallback, useState } from 'react'; import { CypressFields } from '../../utils/Cypress'; import Input from '../Input'; import * as S from './CheckoutForm.styled'; const currentYear = new Date().getFullYear(); const yearList = Array.from(new Array(20), (v, i) => i + currentYear); export interface IFormData { email: string; streetAddress: string; city: string; state: string; country: string; zipCode: string; creditCardNumber: string; creditCardCvv: number; creditCardExpirationYear: number; creditCardExpirationMonth: number; } interface IProps { onSubmit(formData: IFormData): void; } const CheckoutForm = ({ onSubmit }: IProps) => { const [ { email, streetAddress, city, state, country, zipCode, creditCardCvv, creditCardExpirationMonth, creditCardExpirationYear, creditCardNumber, }, setFormData, ] = useState({ email: 'someone@example.com', streetAddress: '1600 Amphitheatre Parkway', city: 'Mountain View', state: 'CA', country: 'United States', zipCode: "94043", creditCardNumber: '4432-8015-6152-0454', creditCardCvv: 672, creditCardExpirationYear: 2030, creditCardExpirationMonth: 1, }); const handleChange = useCallback((e: React.ChangeEvent) => { setFormData(formData => ({ ...formData, [e.target.name]: e.target.value, })); }, []); return ( { event.preventDefault(); onSubmit({ email, streetAddress, city, state, country, zipCode, creditCardCvv, creditCardExpirationMonth, creditCardExpirationYear, creditCardNumber, }); }} > Shipping Address
Payment Method
{yearList.map(year => ( ))} Continue Shopping Place Order
); }; export default CheckoutForm;