This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
40 lines
963 B
TypeScript
40 lines
963 B
TypeScript
import * as React from "react";
|
|
import { useTranslation } from "react-i18next";
|
|
import Share from "~/models/Share";
|
|
import ListItem from "~/components/List/Item";
|
|
import Time from "~/components/Time";
|
|
import ShareMenu from "~/menus/ShareMenu";
|
|
|
|
type Props = {
|
|
share: Share;
|
|
};
|
|
|
|
const ShareListItem = ({ share }: Props) => {
|
|
const { t } = useTranslation();
|
|
const { lastAccessedAt } = share;
|
|
|
|
return (
|
|
<ListItem
|
|
title={share.documentTitle}
|
|
subtitle={
|
|
<>
|
|
{t("Shared")} <Time dateTime={share.createdAt} addSuffix />{" "}
|
|
{t("by {{ name }}", {
|
|
name: share.createdBy.name,
|
|
})}{" "}
|
|
{lastAccessedAt && (
|
|
<>
|
|
{" "}
|
|
· {t("Last accessed")}{" "}
|
|
<Time dateTime={lastAccessedAt} addSuffix />
|
|
</>
|
|
)}
|
|
</>
|
|
}
|
|
actions={<ShareMenu share={share} />}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default ShareListItem;
|