Merge version_3 into main #5

Merged
bender merged 5 commits from version_3 into main 2026-02-21 20:08:24 +00:00
5 changed files with 33 additions and 65 deletions

View File

@@ -10,16 +10,6 @@ import { useBlogPosts } from "@/hooks/useBlogPosts";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
const WHATNOT_LINK = "https://www.whatnot.com/live/glowtheory";
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "/#about" },
{ name: "Live Shows", id: "/#live-shows" },
{ name: "Bundles", id: "/#bundles" },
{ name: "Reviews", id: "/#reviews" },
{ name: "Contact", id: "/#contact-support" }
];
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
@@ -37,12 +27,14 @@ export default function BlogPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
button={{ text: "Join Live", href: WHATNOT_LINK }}
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
]}
button={{ text: "Join Live", href: "/#live-shows" }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
@@ -76,4 +68,4 @@ export default function BlogPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -12,12 +12,12 @@ export const metadata: Metadata = {
title: "Glow Theory - Premium Beauty Wholesale Live Selling", description: "Elevate your glow with Glow Theory, your Miami-based source for luxury beauty, skincare, fragrance, and cosmetic reseller bundles through live shows on Whatnot.", openGraph: {
title: "Glow Theory - Premium Beauty Wholesale Live Selling", description: "Elevate your glow with Glow Theory, your Miami-based source for luxury beauty, skincare, fragrance, and cosmetic reseller bundles through live shows on Whatnot.", url: "https://glowtheory.com", siteName: "Glow Theory", images: [
{
url: "https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg", alt: "Glow Theory beauty products with a soft pink glow"}
url: "https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg", alt: "Glow Theory beauty products with a soft pink glow"},
],
type: "website"},
twitter: {
card: "summary_large_image", title: "Glow Theory - Premium Beauty Wholesale Live Selling", description: "Elevate your glow with Glow Theory, your Miami-based source for luxury beauty, skincare, fragrance, and cosmetic reseller bundles through live shows on Whatnot.", images: ["https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg"]
}
card: "summary_large_image", title: "Glow Theory - Premium Beauty Wholesale Live Selling", description: "Elevate your glow with Glow Theory, your Miami-based source for luxury beauty, skincare, fragrance, and cosmetic reseller bundles through live shows on Whatnot.", images: ["https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg"],
},
};
export default function RootLayout({
@@ -1404,4 +1404,4 @@ export default function RootLayout({
</ServiceWrapper>
</html>
);
}
}

View File

@@ -12,15 +12,6 @@ import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { CalendarCheck, Mail, MessageSquare, Sparkles, Timer, Tv } from "lucide-react";
export default function LandingPage() {
const WHATNOT_LINK = "https://www.whatnot.com/live/glowtheory";
const navItems = [
{ name: "About", id: "about" },
{ name: "Live Shows", id: "live-shows" },
{ name: "Bundles", id: "bundles" },
{ name: "Reviews", id: "reviews" },
{ name: "Contact", id: "contact-support" }
];
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
@@ -37,12 +28,17 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
button={{ text: "Join Live", href: WHATNOT_LINK }}
navItems={[
{ name: "About", id: "about" },
{ name: "Live Shows", id: "live-shows" },
{ name: "Bundles", id: "bundles" },
{ name: "Reviews", id: "reviews" },
{ name: "Support", id: "support" },
]}
button={{ text: "Join Live", href: "#live-shows" }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
@@ -51,7 +47,7 @@ export default function LandingPage() {
title="Glow Theory"
description="Elevate Your Glow"
background={{ variant: "radial-gradient" }}
buttons={[{ text: "Join Our Live Show", href: WHATNOT_LINK }]}
buttons={[{ text: "Join Our Live Show", href: "https://www.whatnot.com/s/xeIJ5XNt" }]}
mediaItems={[
{ imageSrc: "https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg?_wi=1", imageAlt: "Beauty products with a soft pink glow" },
{ imageSrc: "https://img.b2bpic.net/free-photo/minimal-assortment-beauty-products_23-2148961325.jpg?_wi=2", imageAlt: "Beauty products with a soft pink glow" },
@@ -183,7 +179,7 @@ export default function LandingPage() {
iconContainerClassName="!bg-[--primary-cta] !text-[--primary-cta-text] rounded-full p-4 shadow-md"
cardTitleClassName="text-xl md:text-2xl font-semibold mt-4"
cardDescriptionClassName="text-md md:text-lg font-light text-balance"
buttons={[{ text: "Join The Glow Fam", href: "#contact-support" }]}
buttons={[{ text: "Join The Glow Fam", href: "#contact-support" }]}
buttonAnimation="slide-up"
/>
</div>
@@ -219,7 +215,7 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Glow Theory"
leftLink={{ text: "Customer Support", href: "/#contact-support" }}
leftLink={{ text: "Customer Support", href: "#contact-support" }}
rightLink={{ text: "Privacy Policy", href: "/privacy" }}
className="bg-[--background] text-[--foreground] py-6 px-4"
linkClassName="text-[--foreground] hover:text-[--primary-cta] transition-colors duration-200"
@@ -228,4 +224,4 @@ export default function LandingPage() {
</div>
</ThemeProvider>
);
}
}

View File

@@ -3,7 +3,7 @@
import { Suspense, use, useCallback } from "react";
import { useRouter } from "next/navigation";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { ThemeProvider }21
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import ProductDetailCard from "@/components/ecommerce/productDetail/ProductDetailCard";
@@ -74,15 +74,6 @@ function ProductPageContent({ params }: ProductPageProps) {
await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
}, [cartItems, checkout, getCheckoutItems]);
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "/#about" },
{ name: "Live Shows", id: "/#live-shows" },
{ name: "Bundles", id: "/#bundles" },
{ name: "Reviews", id: "/#reviews" },
{ name: "Contact", id: "/#contact-support" }
];
if (isLoading) {
return (
<ThemeProvider
@@ -101,12 +92,11 @@ function ProductPageContent({ params }: ProductPageProps) {
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
<div id="loading-section" data-section="loading-section">
@@ -147,12 +137,11 @@ function ProductPageContent({ params }: ProductPageProps) {
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
<div id="not-found-section" data-section="not-found-section">
@@ -200,12 +189,11 @@ function ProductPageContent({ params }: ProductPageProps) {
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
<div id="product-detail-card" data-section="product-detail-card">
@@ -257,4 +245,4 @@ function ProductPageContent({ params }: ProductPageProps) {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -30,7 +30,10 @@ function ShopPageContent() {
getCheckoutItems,
} = useCart();
const { checkout, isLoading: isCheckoutLoading } = useCheckout();
const {
checkout,
isLoading: isCheckoutLoading
} = useCheckout();
const handleCheckout = useCallback(async () => {
if (cartItems.length === 0) return;
@@ -41,15 +44,6 @@ function ShopPageContent() {
await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
}, [cartItems, checkout, getCheckoutItems]);
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "/#about" },
{ name: "Live Shows", id: "/#live-shows" },
{ name: "Bundles", id: "/#bundles" },
{ name: "Reviews", id: "/#reviews" },
{ name: "Contact", id: "/#contact-support" }
];
if (isLoading) {
return (
<ThemeProvider
@@ -68,12 +62,11 @@ function ShopPageContent() {
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
<div id="loading-section" data-section="loading-section">
@@ -113,12 +106,11 @@ function ShopPageContent() {
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingOverlay
brandName="Glow Theory"
navItems={navItems}
navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
className="py-4 px-6 md:px-8"
buttonClassName="shadow-md !bg-[--primary-cta] !text-[--primary-cta-text]"
buttonTextClassName="font-medium"
menuButtonClassName="!text-[--accent]"
/>
</div>
<div id="product-catalog" data-section="product-catalog">