import * as React from "react"; import { Trans, useTranslation } from "react-i18next"; import styled from "styled-components"; import Membership from "~/models/Membership"; import User from "~/models/User"; import Avatar from "~/components/Avatar"; import Badge from "~/components/Badge"; import Button from "~/components/Button"; import Flex from "~/components/Flex"; import InputSelect, { Props as SelectProps } from "~/components/InputSelect"; import ListItem from "~/components/List/Item"; import Time from "~/components/Time"; import MemberMenu from "~/menus/MemberMenu"; type Props = { user: User; membership?: Membership | undefined; canEdit: boolean; onAdd?: () => void; onRemove?: () => void; onUpdate?: (permission: string) => void; }; const MemberListItem = ({ user, membership, onRemove, onUpdate, onAdd, canEdit, }: Props) => { const { t } = useTranslation(); const PERMISSIONS = React.useMemo( () => [ { label: t("View only"), value: "read", }, { label: t("View and edit"), value: "read_write", }, ], [t] ); return ( {user.lastActiveAt ? ( Active ) : ( t("Never signed in") )} {user.isInvited && {t("Invited")}} {user.isAdmin && {t("Admin")}} } image={} actions={ {onUpdate && (