From 057667752301bd0a32ab21c52653f3fd2f57962a Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 15 Apr 2026 14:41:42 -0400 Subject: [PATCH] feat: scroll-to-top button in estore; fix JS/CSS cache headers on main site MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add ScrollToTop component matching main site's green Top button (appears after 130px scroll, same styling and font) - Fix main-site server.js: JS/CSS now use max-age=3600 + must-revalidate instead of 30d immutable — changes reach users within 1 hour instead of being stuck in browser cache for a month - Images/fonts keep 30d immutable (safe, as they are content-addressed) Co-Authored-By: Claude Sonnet 4.6 --- estore/src/app/layout.tsx | 2 ++ estore/src/components/ScrollToTop.tsx | 45 +++++++++++++++++++++++++++ main-site/server.js | 7 ++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 estore/src/components/ScrollToTop.tsx diff --git a/estore/src/app/layout.tsx b/estore/src/app/layout.tsx index 6d90ae7..f8ace10 100644 --- a/estore/src/app/layout.tsx +++ b/estore/src/app/layout.tsx @@ -5,6 +5,7 @@ import Footer from '@/components/Footer' import CartDrawer from '@/components/CartDrawer' import CartFab from '@/components/CartFab' import { CartProvider } from '@/context/CartContext' +import ScrollToTop from '@/components/ScrollToTop' export const metadata: Metadata = { title: { @@ -51,6 +52,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
{children}