diff --git a/packages/web/src/components/WelcomeModal/ProductHuntBadge.tsx b/packages/web/src/components/WelcomeModal/ProductHuntBadge.tsx new file mode 100644 index 000000000..c48179ce9 --- /dev/null +++ b/packages/web/src/components/WelcomeModal/ProductHuntBadge.tsx @@ -0,0 +1,22 @@ +const PRODUCT_HUNT_URL = + "https://www.producthunt.com/products/compass-calendar?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-compass-calendar-2"; +const PRODUCT_HUNT_BADGE_SRC = + "https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1222394&theme=dark&t=1786683338797"; + +export function ProductHuntBadge() { + return ( + + Compass Calendar - The keyboard-first calendar. Get organized quickly. | Product Hunt + + ); +} diff --git a/packages/web/src/components/WelcomeModal/WelcomeGuideBody.tsx b/packages/web/src/components/WelcomeModal/WelcomeGuideBody.tsx index dbe3a26a0..55f6cddbe 100644 --- a/packages/web/src/components/WelcomeModal/WelcomeGuideBody.tsx +++ b/packages/web/src/components/WelcomeModal/WelcomeGuideBody.tsx @@ -1,5 +1,6 @@ import { useId, useState } from "react"; import { FAQ_ITEMS } from "./faq"; +import { ProductHuntBadge } from "./ProductHuntBadge"; export function WelcomeGuideBody() { const disclosureIdPrefix = useId(); @@ -23,7 +24,7 @@ export function WelcomeGuideBody() { return ( <> -
+

The keyboard-first calendar

@@ -33,7 +34,11 @@ export function WelcomeGuideBody() {

-
+
+ +
+ +
{FAQ_ITEMS.map((item, index) => { const isExpanded = expandedFaqs.has(item.question); const answerId = `${disclosureIdPrefix}-faq-answer-${index}`; diff --git a/packages/web/src/components/WelcomeModal/WelcomeModal.test.tsx b/packages/web/src/components/WelcomeModal/WelcomeModal.test.tsx index c55d1cbc5..937e789a9 100644 --- a/packages/web/src/components/WelcomeModal/WelcomeModal.test.tsx +++ b/packages/web/src/components/WelcomeModal/WelcomeModal.test.tsx @@ -72,6 +72,14 @@ describe("WelcomeModal", () => { expect(screen.getByText(/Rediscover the joy of shortcuts/)).toBeTruthy(); expect(screen.getByRole("img", { name: /pixel pirate/i })).toBeTruthy(); expect(screen.getByText("No signup required")).toBeTruthy(); + expect( + screen.getByRole("link", { + name: "Compass Calendar - The keyboard-first calendar. Get organized quickly. | Product Hunt", + }), + ).toHaveAttribute( + "href", + "https://www.producthunt.com/products/compass-calendar?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-compass-calendar-2", + ); }); it("opens the auth modal from the Log in pill", async () => {