import * as React from "react"; import { MenuDropdown, MenuItem } from "../controls/MenuDropdown"; import { classList } from "../util"; interface IProps { userProfile: pxt.auth.UserProfile; title: string; onSignOutClick?: () => void; className?: string; items?: MenuItem[]; } export const UserAvatarDropdown: React.FC = (props) => { const { userProfile, title, items, onSignOutClick, className } = props; const avatarUrl = userProfile?.idp?.pictureUrl ?? encodedAvatarPic(userProfile); const avatarElem = ; const initialsElem = ; const allItems = items ? items.slice() : []; if (onSignOutClick) { allItems.unshift({ role: "menuitem", id: "signout", title: lf("Sign Out"), label: lf("Sign Out"), onClick: onSignOutClick }); } return ( ); }; const UserInitials = (props: { userProfile: pxt.auth.UserProfile }) => ( ); const UserAvatar = (props: { avatarPicUrl: string }) => (
); function encodedAvatarPic(user: pxt.auth.UserProfile): string { const type = user?.idp?.picture?.mimeType; const encodedImg = user?.idp?.picture?.encoded; return type && encodedImg ? `data:${type};base64,${encodedImg}` : ""; }