Skip to content

Commit fbebecb

Browse files
authored
Account dropdown link (dubinc#3789)
1 parent 2e21124 commit fbebecb

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

apps/web/ui/layout/sidebar/user-dropdown.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ import {
1010
useCurrentSubdomain,
1111
User,
1212
} from "@dub/ui";
13+
import { Gear } from "@dub/ui/icons";
1314
import { APP_DOMAIN, cn, PARTNERS_DOMAIN } from "@dub/utils";
1415
import { LogOut } from "lucide-react";
1516
import { signOut, useSession } from "next-auth/react";
1617
import Link from "next/link";
18+
import { useParams } from "next/navigation";
1719
import {
1820
ComponentPropsWithoutRef,
1921
ElementType,
@@ -26,6 +28,11 @@ export function UserDropdown() {
2628
const { partner } = usePartnerProfile();
2729
const [openPopover, setOpenPopover] = useState(false);
2830
const { subdomain } = useCurrentSubdomain();
31+
const { slug: paramsSlug } = useParams() as { slug?: string | string[] };
32+
33+
const workspaceSlug =
34+
(Array.isArray(paramsSlug) ? paramsSlug[0] : paramsSlug) ||
35+
session?.user?.["defaultWorkspace"];
2936

3037
const menuOptions = useMemo(() => {
3138
const options: Array<{
@@ -53,6 +60,15 @@ export function UserDropdown() {
5360
}
5461

5562
if (subdomain === "app") {
63+
if (workspaceSlug) {
64+
options.push({
65+
label: "Workspace settings",
66+
icon: Gear,
67+
href: `/${workspaceSlug}/settings`,
68+
onClick: () => setOpenPopover(false),
69+
});
70+
}
71+
5672
options.push({
5773
label: "Refer and earn",
5874
icon: Gift,
@@ -82,7 +98,7 @@ export function UserDropdown() {
8298
});
8399

84100
return options;
85-
}, [subdomain, partner, setOpenPopover]);
101+
}, [subdomain, partner, workspaceSlug, setOpenPopover]);
86102

87103
return (
88104
<Popover

0 commit comments

Comments
 (0)