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) => (
-
- ))}
-
-
- );
-}
-
-export function ImageGalleryTwoColumns() {
- return (
-
-
Images
-
-
- {product.images.map((image) => {
- if (image.primary) return null;
- return (
-
- );
- })}
-
-
- );
-}
-
-export function ImageGalleryReversed() {
- return (
-
-
Images
-
-
- {product.images
- .slice()
- .reverse()
- .map((image) => (
-
- ))}
-
-
- );
-}
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
-
-
-
- {product.details.map((item) => (
- - {item}
- ))}
-
-
-
- );
-}
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.name}
-
-
-
- {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"
- />
- ))}
-
-
- ยท
-
-
-
-
- );
-}
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 (
-
- );
-}
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.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 (
-
-
-
-
- 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 });
- }
}