import { Avatar } from "components/Avatar"; import { ActionButton } from "./ActionButton"; import { useIdentityData } from "components/IdentityProvider"; import { AccountSmall } from "components/Icons/AccountSmall"; import { useRecordFromDid } from "src/utils/useRecordFromDid"; import { useIsMobile } from "src/hooks/isMobile"; import { LogoutSmall } from "components/Icons/LogoutSmall"; import { mutate } from "swr"; import { SpeedyLink } from "components/SpeedyLink"; import { Popover } from "components/Popover"; import { ArrowRightTiny } from "components/Icons/ArrowRightTiny"; import { Modal } from "components/Modal"; import { UpgradeContent } from "app/lish/[did]/[publication]/UpgradeModal"; import { ManageProSubscription } from "app/lish/[did]/[publication]/dashboard/settings/ManageProSubscription"; import { useIsPro, useCanSeePro } from "src/hooks/useEntitlement"; import { useState } from "react"; export const ProfileButton = () => { let { identity } = useIdentityData(); let { data: record } = useRecordFromDid(identity?.atp_did); let isMobile = useIsMobile(); let [state, setState] = useState<"menu" | "manage-subscription">("menu"); let isPro = useIsPro(); let canSeePro = useCanSeePro(); return ( setState("menu")} className="w-xs" trigger={ ) : ( ) } label={record ? record.displayName || record.handle : "Account"} className={`w-full`} /> } > {state === "manage-subscription" ? ( setState("menu")} /> ) : (
{record && ( <>
)} {canSeePro && ( <> {!isPro ? ( Get Leaflet Pro
} > ) : ( )}
)} )}
); };