import { useMemo } from "react"; import { faEdit } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { format } from "date-fns"; import { ProjectPermissionCan } from "@app/components/permissions"; import { GenericFieldLabel, SecretSyncStatusBadge } from "@app/components/secret-syncs"; import { IconButton } from "@app/components/v2"; import { ProjectPermissionSub } from "@app/context"; import { ProjectPermissionSecretSyncActions } from "@app/context/ProjectPermissionContext/types"; import { SecretSyncStatus, TSecretSync } from "@app/hooks/api/secretSyncs"; type Props = { secretSync: TSecretSync; onEditDetails: VoidFunction; }; export const SecretSyncDetailsSection = ({ secretSync, onEditDetails }: Props) => { const { syncStatus, lastSyncMessage, lastSyncedAt, name, description } = secretSync; const failureMessage = useMemo(() => { if (syncStatus === SecretSyncStatus.Failed) { if (lastSyncMessage) try { return JSON.stringify(JSON.parse(lastSyncMessage), null, 2); } catch { return lastSyncMessage; } return "An Unknown Error Occurred."; } return null; }, [syncStatus, lastSyncMessage]); return (
{failureMessage}