import { InlineLoading } from '@carbon/react';
import { showSnackbar } from '@openmrs/esm-framework';
import React, { useCallback, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useStockOperationTypes } from '../stock-lookups/stock-lookups.resource';
import { launchStockoperationAddOrEditWorkSpace } from './stock-operation.utils';
import { useStockOperationAndItems } from './stock-operations.resource';
interface StockOperationReferenceProps {
operationUuid: string;
operationNumber: string;
}
const StockOperationReference = ({ operationNumber, operationUuid }: StockOperationReferenceProps) => {
const { t } = useTranslation();
const { types, isLoading: istypesLoading, error: typesError } = useStockOperationTypes();
const {
items: stockOperation,
error: stockOperationError,
isLoading: isStockOperationloading,
} = useStockOperationAndItems(operationUuid ?? null);
const handleEdit = useCallback(() => {
const operationType = types.results?.find((op) => op?.uuid === stockOperation?.operationTypeUuid);
if (!operationType) {
return;
}
launchStockoperationAddOrEditWorkSpace(
t,
operationType,
stockOperation,
stockOperation?.requisitionStockOperationUuid,
);
}, [stockOperation, t, types.results]);
useEffect(() => {
if (stockOperationError) {
showSnackbar({
title: t('errorLoadingStockOperation', 'Error loading stock operation'),
subtitle: stockOperationError?.message,
kind: 'error',
});
}
if (typesError) {
showSnackbar({
title: t('errorLoadingStockOperationTypes', 'Error loading stock operation types'),
subtitle: typesError?.message,
kind: 'error',
});
}
}, [stockOperationError, typesError, t]);
if (istypesLoading || isStockOperationloading) {
return ;
}
return (
{operationNumber}
);
};
export default StockOperationReference;