Skip to content

Commit

Permalink
Update ReferButton to client component
Browse files Browse the repository at this point in the history
  • Loading branch information
steven-tey committed Dec 5, 2024
1 parent c6ecaf7 commit 71a34b7
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 24 deletions.
20 changes: 20 additions & 0 deletions apps/web/app/api/user/embed-tokens/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { withSession } from "@/lib/auth";
import { dub } from "@/lib/dub";
import { NextResponse } from "next/server";

export const GET = withSession(async ({ session }) => {
const referralLinkId = session.user.referralLinkId;
console.log("session", session);

if (!referralLinkId) {
return NextResponse.json({ publicToken: null }, { status: 200 });
}

console.log("referralLinkId", referralLinkId);

const { publicToken } = await dub.embedTokens.create({
linkId: referralLinkId,
});

return NextResponse.json({ publicToken });
});
4 changes: 2 additions & 2 deletions apps/web/app/app.dub.co/(dashboard)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { MainNav } from "@/ui/layout/main-nav";
import { AppSidebarNav } from "@/ui/layout/sidebar/app-sidebar-nav";
import { HelpButtonRSC } from "@/ui/layout/sidebar/help-button-rsc";
import { NewsRSC } from "@/ui/layout/sidebar/news-rsc";
import { ReferButtonRSC } from "@/ui/layout/sidebar/refer-button-rsc";
import { ReferButton } from "@/ui/layout/sidebar/refer-button";
import Toolbar from "@/ui/layout/toolbar/toolbar";
import { constructMetadata } from "@dub/utils";
import { ReactNode } from "react";
Expand All @@ -18,7 +18,7 @@ export default async function Layout({ children }: { children: ReactNode }) {
sidebar={AppSidebarNav}
toolContent={
<>
<ReferButtonRSC />
<ReferButton />
<HelpButtonRSC />
</>
}
Expand Down
4 changes: 2 additions & 2 deletions apps/web/ui/layout/page-content/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { MaxWidthWrapper } from "@dub/ui";
import { cn } from "@dub/utils";
import { PropsWithChildren, ReactNode } from "react";
import { HelpButtonRSC } from "../sidebar/help-button-rsc";
import { ReferButtonRSC } from "../sidebar/refer-button-rsc";
import { ReferButton } from "../sidebar/refer-button";
import UserDropdown from "../sidebar/user-dropdown";
import { NavButton } from "./nav-button";

Expand Down Expand Up @@ -49,7 +49,7 @@ export function PageContent({
<div className="hidden md:block">{titleControls}</div>
)}
<div className="flex items-center gap-4 md:hidden">
<ReferButtonRSC />
<ReferButton />
<HelpButtonRSC />
<UserDropdown />
</div>
Expand Down
18 changes: 0 additions & 18 deletions apps/web/ui/layout/sidebar/refer-button-rsc.tsx

This file was deleted.

17 changes: 15 additions & 2 deletions apps/web/ui/layout/sidebar/refer-button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,21 @@

import { DubWidget } from "@dub/embed-react";
import { Gift } from "@dub/ui/src/icons";
import { cn } from "@dub/utils";
import { cn, fetcher } from "@dub/utils";
import { AnimatePresence, motion } from "framer-motion";
import { useSession } from "next-auth/react";
import { memo } from "react";
import useSWRImmutable from "swr/immutable";

function ReferButtonComponent() {
const { data: session } = useSession();

const { data: { publicToken } = {} } = useSWRImmutable<{
publicToken: string;
}>(session?.user?.["referralLinkId"] && "/api/user/embed-tokens", fetcher);

if (!publicToken) return null;

export function ReferButton({ publicToken }: { publicToken: string }) {
return (
<DubWidget token={publicToken} options={{ trigger: "manual" }}>
<button
Expand All @@ -29,3 +40,5 @@ export function ReferButton({ publicToken }: { publicToken: string }) {
</DubWidget>
);
}

export const ReferButton = memo(ReferButtonComponent);

0 comments on commit 71a34b7

Please sign in to comment.