import React from 'react';
import styles from './stock-reports.scss';
import { formatDate, parseDate } from '@openmrs/esm-framework';
import { BatchJobStatusCancelled, parseParametersToMap } from '../../core/api/types/BatchJob';
import { useTranslation } from 'react-i18next';
interface StockReportStatusProps {
model: any;
}
const StockReportStatus = (props: StockReportStatusProps) => {
const { t } = useTranslation();
let executionStateMap: React.ReactNode;
const displayParameterMap = (
batchJobUuid: string,
parameterMap: { [key: string]: { [key: string]: string } } | null,
): React.ReactNode => {
if (!parameterMap) {
return null;
}
const objectKeys: string[] = Object.keys(parameterMap);
if (objectKeys.length === 0) {
return null;
}
return objectKeys.map((key, index) => {
const displayField: string = parameterMap[key]['description'] ?? key;
const displayValue: string = parameterMap[key]['display'] ?? parameterMap[key]['value'];
return (
{/* cancelled */}
{props.model?.status === BatchJobStatusCancelled && (
{t('cancelled', 'Cancelled')}:
{formatDate(parseDate(props.model?.cancelledDate.toString()), {
time: true,
mode: 'standard',
})}
{props.model?.cancelReason}
)}
{/* start time */}
{props.model?.startTime && (
{t('started', 'Started')}:
{formatDate(parseDate(props.model?.startTime.toString()), {
time: true,
mode: 'standard',
})}
)}
{/* endTime */}
{props.model?.endTime && (
{t('ended', 'Ended')}:
{formatDate(parseDate(props.model?.endTime.toString()), {
time: true,
mode: 'standard',
})}
)}
{/* expiration */}
{props.model?.expiration && (
{t('expires', 'Expires')}:
{formatDate(parseDate(props.model?.expiration.toString()), {
time: true,
mode: 'standard',
})}
)}
{/* executionMap */}
{executionStateMap && (
{t('executionState', 'Execution State')}:
{executionStateMap}
)}
{/* completedDate */}
{props.model?.completedDate && (
{t('completed', 'Completed')}:
{formatDate(parseDate(props.model?.completedDate.toString()), {
time: true,
mode: 'standard',
})}
)}
{/* exitMessage */}
{props.model?.exitMessage && (
{t('exitMessage', 'Message')}:
{props.model?.exitMessage}
)}
);
};
export default StockReportStatus;