import { EditIcon, TrashIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import styled from "styled-components"; import WebhookSubscription from "~/models/WebhookSubscription"; import Badge from "~/components/Badge"; import Button from "~/components/Button"; import ListItem from "~/components/List/Item"; import Modal from "~/components/Modal"; import useBoolean from "~/hooks/useBoolean"; import useStores from "~/hooks/useStores"; import WebhookSubscriptionRevokeDialog from "./WebhookSubscriptionDeleteDialog"; import WebhookSubscriptionEdit from "./WebhookSubscriptionEdit"; type Props = { webhook: WebhookSubscription; }; const WebhookSubscriptionListItem = ({ webhook }: Props) => { const { t } = useTranslation(); const { dialogs } = useStores(); const [editModalOpen, handleEditModalOpen, handleEditModalClose] = useBoolean(); const showDeletionConfirmation = React.useCallback(() => { dialogs.openModal({ title: t("Delete webhook"), isCentered: true, content: ( ), }); }, [t, dialogs, webhook]); return ( {webhook.name} {!webhook.enabled && ( {t("Disabled")} )} } subtitle={ <> {t("Subscribed events")}: {webhook.events.join(", ")} } actions={ <> } /> ); }; const StyledBadge = styled(Badge)` position: absolute; `; export default WebhookSubscriptionListItem;