From 79219f34d1e673f045e4ef012b9873d0b3576fa8 Mon Sep 17 00:00:00 2001 From: Laurie Reynolds Date: Wed, 11 Nov 2026 20:12:58 -0800 Subject: [PATCH] add call to action for escape room pages --- astro/src/components/CallToAction.astro | 103 ++++++++++++++++ .../src/pages/escape-room/how-it-works.astro | 9 ++ astro/src/pages/escape-room/index.astro | 14 +-- astro/src/pages/escape-room/our-story.astro | 7 ++ astro/tests/e2e/call-to-action.spec.ts | 110 ++++++++++++++++++ 5 files changed, 236 insertions(+), 7 deletions(-) create mode 100644 astro/src/components/CallToAction.astro create mode 100644 astro/tests/e2e/call-to-action.spec.ts diff --git a/astro/src/components/CallToAction.astro b/astro/src/components/CallToAction.astro new file mode 100644 index 00000000..99f7b510 --- /dev/null +++ b/astro/src/components/CallToAction.astro @@ -0,0 +1,103 @@ +--- +/** A navigation callout. Use the supporting slot for optional follow-up content. */ +interface Props { + heading: string; + description: string; + href: string; + linkText: string; + headingLevel?: 2 | 3 | 4 | 5 | 6; +} + +const { heading, description, href, linkText, headingLevel = 2 } = Astro.props; +const Heading = `h${headingLevel}` as "h2" | "h3" | "h4" | "h5" | "h6"; +--- + +
+
+ {heading} +

{description}

+ {linkText} + { + Astro.slots.has("supporting") && ( +
+ +
+ ) + } +
+
+ + diff --git a/astro/src/pages/escape-room/how-it-works.astro b/astro/src/pages/escape-room/how-it-works.astro index fd380d98..a81c2b05 100644 --- a/astro/src/pages/escape-room/how-it-works.astro +++ b/astro/src/pages/escape-room/how-it-works.astro @@ -1,5 +1,6 @@ --- import { getOpenGraphImageData } from "@lib/og-image"; +import CallToAction from "@components/CallToAction.astro"; import type { Breadcrumbs, PageMetadata } from "@lib/types"; const title = "How it Works"; @@ -130,6 +131,14 @@ import heroBg from "src/images/escape-room/shaded/puzzle-display.jpg"; + +

Have a question we didn’t answer? Email us

+