import { observer } from "mobx-react"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { unicodeCLDRtoBCP47 } from "@shared/utils/date"; import Share from "~/models/Share"; import Avatar from "~/components/Avatar"; import Flex from "~/components/Flex"; import TableFromParams from "~/components/TableFromParams"; import Time from "~/components/Time"; import useUserLocale from "~/hooks/useUserLocale"; import ShareMenu from "~/menus/ShareMenu"; import { formatNumber } from "~/utils/language"; type Props = Omit, "columns"> & { data: Share[]; canManage: boolean; }; function SharesTable({ canManage, data, ...rest }: Props) { const { t } = useTranslation(); const language = useUserLocale(); const hasDomain = data.some((share) => share.domain); const columns = React.useMemo( () => [ { id: "documentTitle", Header: t("Document"), accessor: "documentTitle", disableSortBy: true, Cell: observer(({ value }: { value: string }) => <>{value}), }, { id: "who", Header: t("Shared by"), accessor: "createdById", disableSortBy: true, Cell: observer( ({ row }: { value: string; row: { original: Share } }) => ( {row.original.createdBy && ( )} {row.original.createdBy.name} ) ), }, { id: "createdAt", Header: t("Date shared"), accessor: "createdAt", Cell: observer(({ value }: { value: string }) => value ?