@@ -10,10 +10,12 @@ import {
1010 useCurrentSubdomain ,
1111 User ,
1212} from "@dub/ui" ;
13+ import { Gear } from "@dub/ui/icons" ;
1314import { APP_DOMAIN , cn , PARTNERS_DOMAIN } from "@dub/utils" ;
1415import { LogOut } from "lucide-react" ;
1516import { signOut , useSession } from "next-auth/react" ;
1617import Link from "next/link" ;
18+ import { useParams } from "next/navigation" ;
1719import {
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