diff --git a/examples/winter-sale/app/favicon.ico b/examples/winter-sale/app/favicon.ico index 4b98a2b..a5f43c6 100644 Binary files a/examples/winter-sale/app/favicon.ico and b/examples/winter-sale/app/favicon.ico differ diff --git a/examples/winter-sale/components/color-picker.tsx b/examples/winter-sale/components/color-picker.tsx deleted file mode 100644 index 7d41255..0000000 --- a/examples/winter-sale/components/color-picker.tsx +++ /dev/null @@ -1,51 +0,0 @@ -'use client'; - -import clsx from 'clsx'; -import { useState } from 'react'; -import { RadioGroup } from '@headlessui/react'; -import { product } from '@/app/data'; - -export function ColorPicker() { - const [selectedColor, setSelectedColor] = useState(product.colors[0]); - - return ( -
-

Color

- - - Choose a color -
- {product.colors.map((color) => ( - - clsx( - color.selectedColor, - active && checked ? 'ring ring-offset-1' : '', - !active && checked ? 'ring-2' : '', - 'relative -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-0.5 focus:outline-none', - ) - } - > - - {color.name} - - - ))} -
-
-
- ); -} diff --git a/examples/winter-sale/components/eu-flag.tsx b/examples/winter-sale/components/eu-flag.tsx deleted file mode 100644 index 76d1b8f..0000000 --- a/examples/winter-sale/components/eu-flag.tsx +++ /dev/null @@ -1,62 +0,0 @@ -export function EuFlag({ className }: { className: string }) { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -} diff --git a/examples/winter-sale/components/footer.tsx b/examples/winter-sale/components/footer.tsx deleted file mode 100644 index af89fa8..0000000 --- a/examples/winter-sale/components/footer.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { ShoppingBagIcon } from '@heroicons/react/24/outline'; -import { footerNavigation } from '@/app/data'; - -export function Footer() { - return ( - - ); -} diff --git a/examples/winter-sale/components/header.tsx b/examples/winter-sale/components/header.tsx deleted file mode 100644 index 2b6071a..0000000 --- a/examples/winter-sale/components/header.tsx +++ /dev/null @@ -1,125 +0,0 @@ -'use client'; - -import { clsx } from 'clsx'; -import { Popover } from '@headlessui/react'; -import { - Bars3Icon, - MagnifyingGlassIcon, - ShoppingBagIcon, - ShoppingCartIcon, - UserIcon, -} from '@heroicons/react/24/outline'; -import { EuFlag } from './eu-flag'; -import { navigation } from '@/app/data'; - -export function Header() { - return ( -
- -
- ); -} diff --git a/examples/winter-sale/components/image-gallery.tsx b/examples/winter-sale/components/image-gallery.tsx deleted file mode 100644 index 4289787..0000000 --- a/examples/winter-sale/components/image-gallery.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import clsx from 'clsx'; -import { product } from '@/app/data'; -import Image from 'next/image'; - -export function ImageGallery() { - return ( -
-

Images

- -
- {product.images.map((image) => ( - {image.imageAlt} - ))} -
-
- ); -} - -export function ImageGalleryTwoColumns() { - return ( -
-

Images

- -
- {product.images.map((image) => { - if (image.primary) return null; - return ( - {image.imageAlt} - ); - })} -
-
- ); -} - -export function ImageGalleryReversed() { - return ( -
-

Images

- -
- {product.images - .slice() - .reverse() - .map((image) => ( - {image.imageAlt} - ))} -
-
- ); -} diff --git a/examples/winter-sale/components/materials.tsx b/examples/winter-sale/components/materials.tsx deleted file mode 100644 index 2c03407..0000000 --- a/examples/winter-sale/components/materials.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { product } from '@/app/data'; - -export function Materials() { - return ( -
-

Fabric & Care

- -
- -
-
- ); -} diff --git a/examples/winter-sale/components/policies.tsx b/examples/winter-sale/components/policies.tsx deleted file mode 100644 index 10bc1d1..0000000 --- a/examples/winter-sale/components/policies.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { policies } from '@/app/data'; - -export function Policies() { - return ( -
-

- Our Policies -

- -
- {policies.map((policy) => ( -
-
-
-
{policy.description}
-
- ))} -
-
- ); -} diff --git a/examples/winter-sale/components/product-detail-reviews.tsx b/examples/winter-sale/components/product-detail-reviews.tsx deleted file mode 100644 index a69b1e5..0000000 --- a/examples/winter-sale/components/product-detail-reviews.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import clsx from 'clsx'; -import { StarIcon } from '@heroicons/react/24/solid'; -import { reviews } from '@/app/data'; - -export function ProductDetailReviews() { - return ( -
-

Reviews

-
-

- {reviews.average} - out of 5 stars -

-
- {[0, 1, 2, 3, 4].map((rating) => ( - rating ? 'text-yellow-400' : 'text-gray-200', - 'h-5 w-5 flex-shrink-0', - )} - aria-hidden="true" - /> - ))} -
- -
- - See all {reviews.totalCount} reviews - -
-
-
- ); -} diff --git a/examples/winter-sale/components/product-details.tsx b/examples/winter-sale/components/product-details.tsx deleted file mode 100644 index cbe984f..0000000 --- a/examples/winter-sale/components/product-details.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { product } from '@/app/data'; - -export function ProductDetails() { - return ( -
-

Description

- -
-
- ); -} diff --git a/examples/winter-sale/components/product-heading.tsx b/examples/winter-sale/components/product-heading.tsx deleted file mode 100644 index 6af3438..0000000 --- a/examples/winter-sale/components/product-heading.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { product } from '@/app/data'; - -export function ProductHeading() { - return ( -
-

{product.name}

-

{product.price}

-
- ); -} diff --git a/examples/winter-sale/components/promo.tsx b/examples/winter-sale/components/promo.tsx deleted file mode 100644 index d3490f2..0000000 --- a/examples/winter-sale/components/promo.tsx +++ /dev/null @@ -1,48 +0,0 @@ -'use client'; - -import Image from 'next/image'; -import summer from '../public/etienne-girardet-Xh6BpT-1tXo-unsplash.jpg'; -import { track } from '@vercel/analytics/react'; - -export function Promo() { - return ( -
-
-
-
- -
-
-
-

- Summer Sale -

-

- Enjoy 20% off all summer styles, -
- from bright dresses to pastel-hued tops. -

- -
-
-
-
-
- ); -} diff --git a/examples/winter-sale/components/related-products.tsx b/examples/winter-sale/components/related-products.tsx deleted file mode 100644 index 863502f..0000000 --- a/examples/winter-sale/components/related-products.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { relatedProducts } from '@/app/data'; -import Image from 'next/image'; - -export function RelatedProducts() { - return ( -
- - -
- {relatedProducts.map((relatedProduct) => ( -
-
- {relatedProduct.imageAlt} -
-
-
-

- - -

-

- {relatedProduct.color} -

-
-

- {relatedProduct.price} -

-
-
- ))} -
-
- ); -} diff --git a/examples/winter-sale/components/reviews.tsx b/examples/winter-sale/components/reviews.tsx deleted file mode 100644 index 27ad322..0000000 --- a/examples/winter-sale/components/reviews.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import clsx from 'clsx'; -import { StarIcon } from '@heroicons/react/24/solid'; -import { reviews } from '@/app/data'; - -export function Reviews() { - return ( -
-

- Recent reviews -

- -
- {reviews.featured.map((review) => ( -
-
-
-
- {[0, 1, 2, 3, 4].map((rating) => ( - rating - ? 'text-yellow-400' - : 'text-gray-200', - 'h-5 w-5 flex-shrink-0', - )} - aria-hidden="true" - /> - ))} -
-

- {review.rating} - out of 5 stars -

-
- -
-

- {review.title} -

- -
-
-
- -
-

{review.author}

- -
-
- ))} -
-
- ); -} diff --git a/examples/winter-sale/components/size-picker.tsx b/examples/winter-sale/components/size-picker.tsx deleted file mode 100644 index 2173311..0000000 --- a/examples/winter-sale/components/size-picker.tsx +++ /dev/null @@ -1,55 +0,0 @@ -'use client'; - -import clsx from 'clsx'; -import { useState } from 'react'; -import { RadioGroup } from '@headlessui/react'; -import { product } from '@/app/data'; - -export function SizePicker() { - const [selectedSize, setSelectedSize] = useState(product.sizes[2]); - - return ( -
-
-

Size

- - See sizing chart - -
- - - Choose a size -
- {product.sizes.map((size) => ( - - clsx( - size.inStock - ? 'cursor-pointer focus:outline-none' - : 'cursor-not-allowed opacity-25', - active ? 'ring-2 ring-slate-500 ring-offset-2' : '', - checked - ? 'border-transparent bg-slate-600 text-white hover:bg-slate-700' - : 'border-gray-200 bg-white text-gray-900 hover:bg-gray-50', - 'flex items-center justify-center rounded-md border py-3 px-3 text-sm font-medium uppercase sm:flex-1', - ) - } - disabled={!size.inStock} - > - {size.name} - - ))} -
-
-
- ); -} diff --git a/examples/winter-sale/components/top-banner.tsx b/examples/winter-sale/components/top-banner.tsx deleted file mode 100644 index 00775e2..0000000 --- a/examples/winter-sale/components/top-banner.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export function TopBanner({ children }: { children?: string }) { - return ( -
- {children ? children : 'Get free delivery on orders over $100'} -
- ); -} diff --git a/examples/winter-sale/middleware.ts b/examples/winter-sale/middleware.ts index 76e32ac..24204c9 100644 --- a/examples/winter-sale/middleware.ts +++ b/examples/winter-sale/middleware.ts @@ -1,6 +1,6 @@ import { type NextRequest, NextResponse } from 'next/server'; import { precompute } from '@vercel/flags/next'; -import { precomputeFlags, bannerFlags } from '@/flags'; +import { precomputeFlags } from '@/flags'; import { getOrGenerateVisitorId } from './utils/generateVisitorId'; export const config = { matcher: ['/', '/precomputed-pages-router-example'] }; @@ -24,15 +24,4 @@ export async function middleware(request: NextRequest) { : undefined, }); } - - if (request.nextUrl.pathname === '/precomputed-pages-router-example') { - const code = await precompute(bannerFlags); - - // rewrites the request to the variant for this flag combination - const nextUrl = new URL( - `/${code}${request.nextUrl.pathname}${request.nextUrl.search}`, - request.url, - ); - return NextResponse.rewrite(nextUrl, { request }); - } }