import { observer } from "mobx-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; import styled from "styled-components"; import User from "~/models/User"; import Avatar from "~/components/Avatar"; import Badge from "~/components/Badge"; import Flex from "~/components/Flex"; import TableFromParams from "~/components/TableFromParams"; import Time from "~/components/Time"; import useCurrentUser from "~/hooks/useCurrentUser"; import UserMenu from "~/menus/UserMenu"; type Props = Omit, "columns"> & { data: User[]; canManage: boolean; }; function PeopleTable({ canManage, ...rest }: Props) { const { t } = useTranslation(); const currentUser = useCurrentUser(); const columns = React.useMemo( () => [ { id: "name", Header: t("Name"), accessor: "name", Cell: observer( ({ value, row }: { value: string; row: { original: User } }) => ( {value}{" "} {currentUser.id === row.original.id && `(${t("You")})`} ) ), }, canManage ? { id: "email", Header: t("Email"), accessor: "email", Cell: observer(({ value }: { value: string }) => <>{value}), } : undefined, { id: "lastActiveAt", Header: t("Last active"), accessor: "lastActiveAt", Cell: observer(({ value }: { value: string }) => value ?