/******************************************************************************** * Copyright (c) 2020 TypeFox and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * SPDX-License-Identifier: EPL-2.0 ********************************************************************************/ import { FunctionComponent, useContext } from 'react'; import { Box, Typography, Avatar, Select, MenuItem, Button, SelectChangeEvent } from '@mui/material'; import { NamespaceMembership, MembershipRole, Namespace, UserData } from '../../extension-registry-types'; import { MainContext } from '../../context'; export const UserNamespaceMember: FunctionComponent = props => { const equalUser = (user1: UserData | undefined, user2: UserData | undefined) => { return user1?.loginName === user2?.loginName && user1?.provider === user2?.provider; }; const memberUser = props.member.user; const context = useContext(MainContext); const contextUser = context.user; return {memberUser.loginName} {memberUser.fullName ? {memberUser.fullName} : ''} { memberUser.avatarUrl ? : '' } { props.fixSelf && equalUser(memberUser, contextUser) ? Owner : <> } ; }; export interface UserNamespaceMemberProps { namespace: Namespace; member: NamespaceMembership; fixSelf: boolean; onChangeRole: (role: MembershipRole) => void; onRemoveUser: () => void; }