|
1 |
| -import { AddToCartButton } from '@/components/add-to-cart-button' |
2 |
| -import { FreeDeliveryBanner } from '@/components/banners/free-delivery-banner' |
3 |
| -import { SummerBanner } from '@/components/banners/summer-banner' |
4 |
| -import { ColorPicker } from '@/components/color-picker' |
5 |
| -import { DevTools } from '@/components/dev-tools' |
6 |
| -import { Footer } from '@/components/footer' |
| 1 | +import { SummerSale } from '@/app/summer-sale' |
7 | 2 | import { ImageGallery } from '@/components/image-gallery'
|
8 |
| -import { Navigation } from '@/components/navigation' |
9 |
| -import { ProductDetails } from '@/components/product-details' |
10 |
| -import { ProductHeader } from '@/components/product-header' |
11 |
| -import { SizePicker } from '@/components/size-picker' |
12 |
| -import { StatsigGateExposure } from '@/components/statsig/statsig-gate-exposure' |
13 |
| -import { |
14 |
| - productFlags, |
15 |
| - showFreeDeliveryBannerFlag, |
16 |
| - showSummerBannerFlag, |
17 |
| -} from '@/flags' |
18 |
| -import { getPrecomputed } from 'flags/next' |
| 3 | +import { ProductDetails } from '@/components/product-detail-page/product-details' |
| 4 | +import { ProductHeader } from '@/components/product-detail-page/product-header' |
| 5 | +import { AddToCart } from '@/app/[code]/add-to-cart' |
| 6 | +import { ColorPicker } from '@/components/product-detail-page/color-picker' |
| 7 | +import { SizePicker } from '@/components/product-detail-page/size-picker' |
| 8 | +import { ProductDetailPageProvider } from '@/components/utils/product-detail-page-context' |
| 9 | + |
| 10 | +import { productFlags, showSummerBannerFlag } from '@/flags' |
| 11 | +import { Main } from '@/components/main' |
19 | 12 |
|
20 | 13 | export default async function Page(props: {
|
21 |
| - params: Promise<{ code: string }>; |
| 14 | + params: Promise<{ code: string }> |
22 | 15 | }) {
|
23 |
| - const params = await props.params; |
24 |
| - |
25 |
| - const [showSummerBanner, showFreeDeliveryBanner] = await getPrecomputed( |
26 |
| - [showSummerBannerFlag, showFreeDeliveryBannerFlag], |
27 |
| - productFlags, |
28 |
| - params.code, |
29 |
| - ); |
| 16 | + const params = await props.params |
| 17 | + const showSummerBanner = await showSummerBannerFlag(params.code, productFlags) |
30 | 18 |
|
31 | 19 | return (
|
32 |
| - <div className="bg-white"> |
33 |
| - <FreeDeliveryBanner show={showFreeDeliveryBanner} /> |
34 |
| - <StatsigGateExposure gate={showFreeDeliveryBannerFlag.key} /> |
35 |
| - |
36 |
| - <Navigation /> |
37 |
| - |
38 |
| - <SummerBanner show={showSummerBanner} /> |
39 |
| - <StatsigGateExposure gate={showSummerBannerFlag.key} /> |
40 |
| - |
41 |
| - <main className="mx-auto max-w-2xl px-4 pb-16 sm:px-6 sm:pb-24 lg:max-w-7xl lg:px-8"> |
| 20 | + <ProductDetailPageProvider> |
| 21 | + <SummerSale show={showSummerBanner} gate={showSummerBannerFlag.key} /> |
| 22 | + <Main> |
42 | 23 | <div className="lg:grid lg:auto-rows-min lg:grid-cols-12 lg:gap-x-8">
|
43 | 24 | <ProductHeader />
|
44 | 25 | <ImageGallery />
|
45 | 26 |
|
46 | 27 | <div className="mt-8 lg:col-span-5">
|
47 | 28 | <ColorPicker />
|
48 | 29 | <SizePicker />
|
49 |
| - <AddToCartButton /> |
| 30 | + <AddToCart /> |
50 | 31 | <ProductDetails />
|
51 | 32 | </div>
|
52 | 33 | </div>
|
53 |
| - </main> |
54 |
| - |
55 |
| - <Footer /> |
56 |
| - <DevTools /> |
57 |
| - </div> |
| 34 | + </Main> |
| 35 | + </ProductDetailPageProvider> |
58 | 36 | )
|
59 | 37 | }
|
0 commit comments