import GitHubMarkWhite from "@/images/github-mark-white.svg"; import GitHubMarkDark from "@/images/github-mark.svg"; import { Popover, Transition } from "@headlessui/react"; import { Bars3Icon, ChevronDownIcon, ChevronRightIcon, XMarkIcon } from "@heroicons/react/24/outline"; import clsx from "clsx"; import { usePlausible } from "next-plausible"; import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; import { Fragment, useEffect, useState } from "react"; import { Button } from "@formbricks/ui/Button"; import { BaseballIcon, CancelSubscriptionIcon, CodeBookIcon, DogChaserIcon, FeedbackIcon, InterviewPromptIcon, OnboardingIcon, PMFIcon, } from "@formbricks/ui/icons"; import { FooterLogo } from "./Logo"; function GitHubIcon(props: any) { return ( ); } const UnderstandUsers = [ { name: "Interview Prompt", href: "/interview-prompt", status: true, icon: InterviewPromptIcon, description: "Interview invites on auto-pilot", }, { name: "Measure PMF", href: "/measure-product-market-fit", status: true, icon: PMFIcon, description: "Improve Product-Market Fit", }, { name: "Onboarding Segments", href: "/onboarding-segmentation", status: true, icon: OnboardingIcon, description: "Get it right from the start", }, ]; const IncreaseRevenue = [ { name: "Learn from Churn", href: "/learn-from-churn", status: true, icon: CancelSubscriptionIcon, description: "Churn is hard, but insightful", }, { name: "Improve Trial CR", href: "/improve-trial-conversion", status: true, icon: BaseballIcon, description: "Take guessing out, hit it right", }, ]; const BoostRetention = [ { name: "Feedback Box", href: "/feedback-box", status: true, icon: FeedbackIcon, description: "Always keep an ear open", }, { name: "Docs Feedback", href: "/docs-feedback", status: true, icon: CodeBookIcon, description: "Clear docs, more adoption", }, { name: "Feature Chaser", href: "/feature-chaser", status: true, icon: DogChaserIcon, description: "Follow up, improve", }, ]; export default function Header() { const [mobileSubOpen, setMobileSubOpen] = useState(false); const plausible = usePlausible(); const router = useRouter(); const [stickyNav, setStickyNav] = useState(false); useEffect(() => { const handleScroll = () => { if (window.scrollY > 250) { setStickyNav(true); } else { setStickyNav(false); } }; window.addEventListener("scroll", handleScroll); return () => { window.removeEventListener("scroll", handleScroll); }; }, []); const stickyNavClass = stickyNav ? `bg-transparent dark:bg-slate-900/[0.8] shadow-md backdrop-blur-lg fixed top-0 z-30 w-full` : "relative"; return ( {/*
We're live on Product Hunt - Show your support for Open Source 🚀
*/}
Formbricks
Open menu
{({ open }) => ( <> Best Practices

Understand Users

{UnderstandUsers.map((brick) => (

{brick.name}

{brick.description}

))}

Increase Revenue

{IncreaseRevenue.map((brick) => (

{brick.name}

{brick.description}

))}

Boost Retention

{BoostRetention.map((brick) => (

{brick.name}

{brick.description}

))}
)}
{/* Community */} Pricing Community Docs Blog {/*

1

*/} {/* Careers

1

*/}
{/* */}
Close menu
{mobileSubOpen ? ( ) : ( )}
{mobileSubOpen && (
{UnderstandUsers.map((brick) => ( {brick.name} ))} {IncreaseRevenue.map((brick) => ( {brick.name} ))} {BoostRetention.map((brick) => ( {brick.name} ))}
)} Community Pricing Docs Blog {/* Careers */}
); }