/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import { CaseFileStatus } from '@aws/dea-app/lib/models/case-file-status';
import {
Button,
ColumnLayout,
Container,
ContentLayout,
Header,
SpaceBetween,
Spinner,
StatusIndicator,
TextContent,
} from '@cloudscape-design/components';
import { useState } from 'react';
import { getCaseFileAuditCSV, useGetCaseActions, useGetFileDetailsById } from '../../api/cases';
import {
auditLogLabels,
breadcrumbLabels,
caseStatusLabels,
commonLabels,
fileDetailLabels,
} from '../../common/labels';
import { useNotifications } from '../../context/NotificationsContext';
import { formatFileSize } from '../../helpers/fileHelper';
import { canDownloadCaseAudit } from '../../helpers/userActionSupport';
export interface FileDetailsBodyProps {
readonly caseId: string;
readonly fileId: string;
}
function FileDetailsBody(props: FileDetailsBodyProps): JSX.Element {
const [auditDownloadInProgress, setAuditDownloadInProgress] = useState(false);
const { data, isLoading } = useGetFileDetailsById(props.caseId, props.fileId);
const userActions = useGetCaseActions(props.caseId);
const { pushNotification } = useNotifications();
function getStatusIcon(status: string) {
if (status == CaseFileStatus.ACTIVE) {
return
{data.created ? new Date(data.created).toLocaleString([], { year: 'numeric', month: 'long', day: 'numeric', }) : '-'}
{formatFileSize(data.fileSizeBytes)}
{data.details}
{getStatusIcon(data.status)}
{data.sha256Hash}