mirror of
https://github.com/vercel/commerce.git
synced 2025-05-04 00:37:51 +00:00
112 lines
4.0 KiB
TypeScript
112 lines
4.0 KiB
TypeScript
import { CheckoutCart } from '@/components/checkout/checkout-cart';
|
|
import { LoadingCart } from '@/components/checkout/loading-cart';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
|
|
import { Input } from '@/components/ui/input';
|
|
import { Label } from '@/components/ui/label';
|
|
import {
|
|
Select,
|
|
SelectContent,
|
|
SelectItem,
|
|
SelectTrigger,
|
|
SelectValue
|
|
} from '@/components/ui/select';
|
|
import { Suspense } from 'react';
|
|
|
|
export default function CheckoutPage() {
|
|
return (
|
|
<div className="container mx-auto p-4 md:p-8">
|
|
<h1 className="mb-8 text-2xl font-bold">Checkout</h1>
|
|
<div className="grid gap-8 md:grid-cols-2">
|
|
<div className="space-y-8">
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Contact</CardTitle>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="email">Email</Label>
|
|
<Input id="email" type="email" placeholder="jdoe@acme.com" />
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Shipping Address</CardTitle>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<div className="space-y-4">
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<div className="space-y-2">
|
|
<Label htmlFor="firstName">First Name</Label>
|
|
<Input id="firstName" placeholder="John" />
|
|
</div>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="lastName">Last Name</Label>
|
|
<Input id="lastName" placeholder="Doe" />
|
|
</div>
|
|
</div>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="address">Address</Label>
|
|
<Input id="address" placeholder="123 Main St" />
|
|
</div>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="apartment">Apartment, suite, etc. (optional)</Label>
|
|
<Input id="apartment" placeholder="" />
|
|
</div>
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<div className="space-y-2">
|
|
<Label htmlFor="city">City</Label>
|
|
<Input id="city" placeholder="Chicago" />
|
|
</div>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="state">State</Label>
|
|
<Input id="state" placeholder="Illinois" />
|
|
</div>
|
|
</div>
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<div className="space-y-2">
|
|
<Label htmlFor="zipCode">ZIP Code</Label>
|
|
<Input id="zipCode" placeholder="60606" />
|
|
</div>
|
|
<div className="space-y-2">
|
|
<Label htmlFor="country">Country</Label>
|
|
<Select>
|
|
<SelectTrigger id="country">
|
|
<SelectValue placeholder="Select country" />
|
|
</SelectTrigger>
|
|
<SelectContent>
|
|
<SelectItem value="us">United States</SelectItem>
|
|
<SelectItem value="ca">Canada</SelectItem>
|
|
<SelectItem value="uk">United Kingdom</SelectItem>
|
|
</SelectContent>
|
|
</Select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
|
|
<Button disabled className="w-full">
|
|
Continue to Shipping
|
|
</Button>
|
|
</div>
|
|
|
|
<div>
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Order Summary</CardTitle>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<Suspense fallback={<LoadingCart />}>
|
|
<CheckoutCart />
|
|
</Suspense>
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|