import { observer } from "mobx-react"; import * as React from "react"; import { Trans, useTranslation } from "react-i18next"; import { CollectionPermission } from "@shared/types"; import Membership from "~/models/Membership"; import User from "~/models/User"; import UserMembership from "~/models/UserMembership"; import Avatar from "~/components/Avatar"; import Badge from "~/components/Badge"; import Button from "~/components/Button"; import Flex from "~/components/Flex"; import InputMemberPermissionSelect from "~/components/InputMemberPermissionSelect"; import ListItem from "~/components/List/Item"; import Time from "~/components/Time"; import MemberMenu from "~/menus/MemberMenu"; type Props = { user: User; membership?: Membership | UserMembership | undefined; canEdit: boolean; onAdd?: () => void; onRemove?: () => void; onUpdate?: (permission: CollectionPermission) => void; }; const MemberListItem = ({ user, membership, onRemove, onUpdate, onAdd, canEdit, }: Props) => { const { t } = useTranslation(); return ( {user.lastActiveAt ? ( Active ) : ( t("Never signed in") )} {user.isInvited && {t("Invited")}} {user.isAdmin && {t("Admin")}} } image={} actions={ {onUpdate && ( )} {canEdit && ( <> {onRemove && } {onAdd && ( )} )} } /> ); }; export default observer(MemberListItem);