import React, { useEffect, useState, useContext } from 'react'
import { useLocation, useNavigate } from 'react-router-dom'
import axios from 'axios'
import {
Card,
Descriptions,
Button,
Space,
message,
Typography,
Table,
Tag
} from 'antd'
import {
ArrowLeftOutlined,
LoadingOutlined,
ClockCircleOutlined
} from '@ant-design/icons'
import { AuthContext } from '../../context/AuthContext'
import IdText from '../../common/IdText'
import TimeDisplay from '../../common/TimeDisplay'
import config from '../../../../config'
import XMarkCircleIcon from '../../../Icons/XMarkCircleIcon'
import CheckCircleIcon from '../../../Icons/CheckCircleIcon'
const { Text, Title } = Typography
const StockAuditInfo = () => {
const [messageApi, contextHolder] = message.useMessage()
const location = useLocation()
const navigate = useNavigate()
const { authenticated } = useContext(AuthContext)
const [stockAudit, setStockAudit] = useState(null)
const [loading, setLoading] = useState(true)
const stockAuditId = new URLSearchParams(location.search).get('stockAuditId')
useEffect(() => {
const fetchStockAudit = async () => {
if (!stockAuditId) {
messageApi.error('No stock audit ID provided')
navigate('/dashboard/inventory/stockaudits')
return
}
try {
const response = await axios.get(
`${config.backendUrl}/stockaudits/${stockAuditId}`,
{
headers: {
Accept: 'application/json'
},
withCredentials: true
}
)
setStockAudit(response.data)
setLoading(false)
} catch (err) {
messageApi.error('Failed to fetch stock audit details')
navigate('/dashboard/inventory/stockaudits')
}
}
if (authenticated) {
fetchStockAudit()
}
}, [authenticated, stockAuditId, messageApi, navigate])
const getStatusTag = (status) => {
switch (status?.toLowerCase()) {
case 'completed':
return (