feat(cloud): pro launch features (#170)

* fix: ensure workspace slug is updated on activation

* feat: open upgrade modal if upgrade=pro is in URL params

* fix: show correct skeleton loader for workspace menu when collapsed

* fix: reenable scroll when navigating back to marketing page

* feat: add launch offer notice
This commit is contained in:
Henry
2025-09-09 13:07:39 +01:00
committed by GitHub
parent 6c04a10b1f
commit 308cb22729
13 changed files with 245 additions and 201 deletions

View File

@@ -1,8 +1,10 @@
import PatternedBackground from "~/components/PatternedBackground";
import { useTheme } from "next-themes";
import { authClient } from "@kan/auth/client";
import PatternedBackground from "~/components/PatternedBackground";
import Footer from "./Footer";
import Header from "./Header";
import { authClient } from "@kan/auth/client";
export default function Layout({ children }: { children: React.ReactNode }) {
const { theme } = useTheme();
@@ -18,6 +20,7 @@ export default function Layout({ children }: { children: React.ReactNode }) {
<style jsx global>{`
html {
scroll-behavior: smooth;
overflow: auto;
background-color: ${!isDarkMode ? "hsl(0deg 0% 97.3%)" : "#161616"};
}
`}</style>

View File

@@ -92,7 +92,12 @@ const Pricing = () => {
{t`Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.`}
</p>
<div className="mt-16 flex justify-center">
<div className="mt-12 flex flex-col items-center justify-center">
<div className="mb-4 flex items-center gap-2 rounded-full border bg-white px-4 py-1.5 text-center text-xs font-bold text-gray-800 dark:border-dark-300 dark:bg-white dark:text-gray-800 lg:text-sm">
<p>
{t`Launch offer: unlimited seats for just $29/month with Pro`}
</p>
</div>
<fieldset aria-label={t`Payment frequency`}>
<RadioGroup
value={frequency}
@@ -165,7 +170,7 @@ const Pricing = () => {
!tier.showPrice && "opacity-0",
)}
>
{tier.price[frequency?.value || "monthly"]}
{tier.price[frequency?.value ?? "monthly"]}
</span>
{tier.showPriceSuffix && (
<span className="text-sm/6 font-semibold text-light-50 dark:text-dark-900">