diff --git a/migrations/0010_hero_slides_table.sql b/migrations/0010_hero_slides_table.sql index bac825e..54fddfe 100644 --- a/migrations/0010_hero_slides_table.sql +++ b/migrations/0010_hero_slides_table.sql @@ -1,19 +1,20 @@ -- Migration: add home_page_hero_slides table for CMS-managed hero slider -CREATE TABLE IF NOT EXISTS home_page_hero_slides ( - id serial PRIMARY KEY, +-- IMPORTANT: id must be character varying (not serial) — Payload generates string IDs +DROP TABLE IF EXISTS home_page_hero_slides CASCADE; +CREATE TABLE home_page_hero_slides ( _order integer NOT NULL, _parent_id integer NOT NULL REFERENCES home_page(id) ON DELETE CASCADE, + id character varying NOT NULL, background_image_id integer REFERENCES media(id) ON DELETE SET NULL, - background_image_url varchar, - type varchar, - title varchar, - subtitle varchar, - cta_label varchar, - cta_href varchar, - updated_at timestamp with time zone, - created_at timestamp with time zone + background_image_url character varying, + type character varying, + title character varying, + subtitle character varying, + cta_label character varying, + cta_href character varying, + updated_at timestamp with time zone DEFAULT now(), + created_at timestamp with time zone DEFAULT now(), + CONSTRAINT home_page_hero_slides_pkey PRIMARY KEY (id) ); -CREATE INDEX IF NOT EXISTS home_page_hero_slides_parent_idx ON home_page_hero_slides (_parent_id); -CREATE INDEX IF NOT EXISTS home_page_hero_slides_order_idx ON home_page_hero_slides (_order); --- Add background_image_url if table already exists (idempotent) -ALTER TABLE home_page_hero_slides ADD COLUMN IF NOT EXISTS background_image_url varchar; +CREATE INDEX home_page_hero_slides_order_idx ON home_page_hero_slides (_order); +CREATE INDEX home_page_hero_slides_parent_id_idx ON home_page_hero_slides (_parent_id); diff --git a/src/components/sections/HeroSlider.tsx b/src/components/sections/HeroSlider.tsx index 731c993..5d1ca62 100644 --- a/src/components/sections/HeroSlider.tsx +++ b/src/components/sections/HeroSlider.tsx @@ -99,7 +99,8 @@ export function HeroSlider({ slides: slidesProp }: { slides?: SlideData[] }) { } }, [next, paused]) - const slide = slides[current]! + const rawSlide = slides[current]! + const slide = { ...rawSlide, title: rawSlide.title.replace(/\\n/g, '\n') } const isBrand = slide.type === 'brand' return (