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 (
);
};