From ade795afb9522894b25c56a15d8daef477772c9a Mon Sep 17 00:00:00 2001 From: David Ball Date: Mon, 15 Jul 2024 03:27:01 -0400 Subject: [PATCH] Added dots to image carousel. Updated product SEO slug placements and setup redirects from old URLs. --- astro.config.mjs | 13 +++++ src/components/ImageCarousel.astro | 75 ++++++++++++++++++++------ src/components/ProductCard.astro | 2 +- src/data/brands/bell-ap.ts | 86 +++++++++++++++--------------- src/data/brands/coast.ts | 3 +- src/data/brands/first-aid-only.ts | 3 +- src/data/brands/invisible-glass.ts | 37 ++++++------- src/data/brands/nvision.ts | 62 ++++++++++----------- src/data/brands/rubbermaid.ts | 44 +++++++-------- src/data/brands/vortex-optics.ts | 57 ++++++++++---------- src/data/products/product.ts | 16 ++++-- src/pages/[productLookup].astro | 4 +- 12 files changed, 237 insertions(+), 165 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index 701fd1d..5279626 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,10 +1,23 @@ import { defineConfig } from 'astro/config'; import sitemap from '@astrojs/sitemap'; import { loadEnv } from "vite"; +import { ALL_PRODUCTS } from './src/data/products'; const { SITE_URL } = loadEnv(process.env.NODE_ENV, process.cwd(), ""); +function generateRedirectsForAmazonProductIds() { + let redirects = {}; + for (let p = 0; p < ALL_PRODUCTS.length; p++) { + let product = ALL_PRODUCTS[p]; + if (product.amazonProductId && product.slug !== product.amazonProductId) { + redirects[`/${product.amazonProductId}`] = `/${product.slug}`; + } + } + return redirects; +} + // https://astro.build/config export default defineConfig({ site: SITE_URL||'http://localhost', integrations: [sitemap()], + redirects: generateRedirectsForAmazonProductIds(), }); diff --git a/src/components/ImageCarousel.astro b/src/components/ImageCarousel.astro index cf6e0f8..d0dad80 100644 --- a/src/components/ImageCarousel.astro +++ b/src/components/ImageCarousel.astro @@ -9,10 +9,10 @@ export interface Image { interface Props { images: Image[]; - dots?: number; + showDots?: boolean; } -const { images } = Astro.props; +const { images, showDots } = Astro.props; let index = 1; --- @@ -32,7 +32,6 @@ let index = 1; } ))} - - + +