import { CopyIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import ApiKey from "~/models/ApiKey"; import Button from "~/components/Button"; import CopyToClipboard from "~/components/CopyToClipboard"; import Flex from "~/components/Flex"; import ListItem from "~/components/List/Item"; import Text from "~/components/Text"; import Time from "~/components/Time"; import useUserLocale from "~/hooks/useUserLocale"; import ApiKeyMenu from "~/menus/ApiKeyMenu"; import { dateToExpiry } from "~/utils/date"; type Props = { apiKey: ApiKey; isCopied: boolean; onCopy: (keyId: string) => void; }; const ApiKeyListItem = ({ apiKey, isCopied, onCopy }: Props) => { const { t } = useTranslation(); const userLocale = useUserLocale(); const subtitle = ( <> {t(`Created`)} {apiKey.lastActiveAt && ( {t("Last used")} )} {apiKey.expiresAt ? dateToExpiry(apiKey.expiresAt, t, userLocale) : t("No expiry")} ); const handleCopy = React.useCallback(() => { onCopy(apiKey.id); }, [apiKey.id, onCopy]); return ( } /> ); }; export default ApiKeyListItem;