"use client"; import { allPlans } from "@openstatus/db/src/schema/plan/config"; import type { BillingInterval } from "@openstatus/db/src/schema/plan/schema"; import { getPriceConfig } from "@openstatus/db/src/schema/plan/utils"; import { Badge } from "@openstatus/ui/components/ui/badge"; import { Tabs, TabsList, TabsTrigger } from "@openstatus/ui/components/ui/tabs"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useCallback } from "react"; const planColumns = [ { plan: "starter" as const, header: "Starter" }, { plan: "team" as const, header: "Pro" }, { plan: "scale" as const, header: "Scale" }, ] as const; export function PricingTabs() { const searchParams = useSearchParams(); const router = useRouter(); const pathname = usePathname(); const interval = ( searchParams.get("interval") === "yearly" ? "yearly" : "monthly" ) as BillingInterval; const setInterval = useCallback( (value: string) => { const params = new URLSearchParams(searchParams.toString()); if (value === "monthly") { params.delete("interval"); } else { params.set("interval", value); } const qs = params.toString(); router.replace(`${pathname}${qs ? `?${qs}` : ""}`, { scroll: false }); }, [searchParams, router, pathname], ); return (