import { ChevronDownIcon, UpgradeIcon, WebstudioIcon, } from "@webstudio-is/icons"; import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuPortal, DropdownMenuItem, DropdownMenuLabel, Flex, Avatar, css, rawTheme, theme, Button, ProBadge, DropdownMenuSeparator, Text, } from "@webstudio-is/design-system"; import { useNavigate } from "@remix-run/react"; import { logoutPath, userPlanSubscriptionPath } from "~/shared/router-utils"; import type { User } from "~/shared/db/user.server"; import type { UserPlanFeatures } from "~/shared/db/user-plan-features.server"; const containerStyle = css({ px: theme.spacing[13], bc: theme.colors.backgroundPanel, height: theme.spacing[15], boxShadow: theme.shadows.brandElevationBig, }); const getAvatarLetter = (title?: string) => { return (title || "X").charAt(0).toLocaleUpperCase(); }; const defaultUserName = "James Bond"; const Menu = ({ user, userPlanFeatures, }: { user: User; userPlanFeatures: UserPlanFeatures; }) => { const navigate = useNavigate(); const nameOrEmail = user.username ?? user.email ?? defaultUserName; return ( {user.username ?? defaultUserName} {user.email} {userPlanFeatures.hasSubscription && ( navigate(userPlanSubscriptionPath())} > Manage Subscription )} {userPlanFeatures.hasProPlan === false && ( { window.open("https://webstudio.is/pricing"); }} css={{ gap: theme.spacing[3], }} >
Upgrade to Pro
)} navigate(logoutPath())}> Sign Out
); }; export const Header = ({ user, userPlanFeatures, }: { user: User; userPlanFeatures: UserPlanFeatures; }) => { return ( ); };