-
+
);
}
diff --git a/apps/web/src/app/[locale]/(admin)/sidebar.tsx b/apps/web/src/app/[locale]/(admin)/sidebar.tsx
index cc0490918..490a70a46 100644
--- a/apps/web/src/app/[locale]/(admin)/sidebar.tsx
+++ b/apps/web/src/app/[locale]/(admin)/sidebar.tsx
@@ -2,6 +2,7 @@
import { cn } from "@rallly/ui";
import { Button } from "@rallly/ui/button";
+import { DialogTrigger } from "@rallly/ui/dialog";
import { Icon } from "@rallly/ui/icon";
import {
ArrowUpRightIcon,
@@ -19,6 +20,7 @@ import Link from "next/link";
import { usePathname } from "next/navigation";
import { CurrentUserAvatar } from "@/components/current-user-avatar";
+import { PayWallDialog } from "@/components/pay-wall-dialog";
import { ProBadge } from "@/components/pro-badge";
import { Trans } from "@/components/trans";
import { IfGuest, useUser } from "@/components/user-provider";
@@ -102,24 +104,25 @@ export function Sidebar() {
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx b/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx
index 26f16aac3..19cd763f4 100644
--- a/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx
+++ b/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx
@@ -13,7 +13,6 @@ import {
import { useRouter } from "next/navigation";
import { DuplicateForm } from "@/app/[locale]/poll/[urlId]/duplicate-form";
-import { PayWallDialogContent } from "@/app/[locale]/poll/[urlId]/pay-wall-dialog-content";
import { trpc } from "@/app/providers";
import { Trans } from "@/components/trans";
import { usePostHog } from "@/utils/posthog";
@@ -30,54 +29,52 @@ export function DuplicateDialog({
const router = useRouter();
return (
);
}
diff --git a/apps/web/src/app/[locale]/poll/[urlId]/pay-wall-dialog-content.tsx b/apps/web/src/components/pay-wall-dialog.tsx
similarity index 94%
rename from apps/web/src/app/[locale]/poll/[urlId]/pay-wall-dialog-content.tsx
rename to apps/web/src/components/pay-wall-dialog.tsx
index 8c7774466..3a6830c43 100644
--- a/apps/web/src/app/[locale]/poll/[urlId]/pay-wall-dialog-content.tsx
+++ b/apps/web/src/components/pay-wall-dialog.tsx
@@ -1,11 +1,18 @@
+"use client";
+
import { pricingData } from "@rallly/billing/pricing";
import { Badge } from "@rallly/ui/badge";
-import { Dialog, DialogContent, DialogProps } from "@rallly/ui/dialog";
+import {
+ Dialog,
+ DialogContent,
+ DialogProps,
+ useDialog,
+} from "@rallly/ui/dialog";
import { RadioGroup, RadioGroupItem } from "@rallly/ui/radio-group";
import { m } from "framer-motion";
import { CheckIcon } from "lucide-react";
import Link from "next/link";
-import { useState } from "react";
+import React from "react";
import { Trans } from "@/components/trans";
import { UpgradeButton } from "@/components/upgrade-button";
@@ -22,11 +29,13 @@ const monthlyPriceAnnualRate = (pricingData.yearly.amount / 100 / 12).toFixed(
2,
);
-export function PayWallDialogContent(props: DialogProps) {
- const [period, setPeriod] = useState("yearly");
+export function PayWallDialog({ children, ...forwardedProps }: DialogProps) {
+ const dialog = useDialog();
+ const [period, setPeriod] = React.useState("yearly");
return (
-