updates
This commit is contained in:
@@ -24,6 +24,27 @@ const STATUS_MAP: Record<string, { label: string; color: string }> = {
|
||||
REJECTED: { label: 'مرفوضة', color: 'bg-red-100 text-red-800' },
|
||||
}
|
||||
|
||||
const COMPANY_TIME_ZONE = 'Asia/Riyadh'
|
||||
const COMPANY_UTC_OFFSET = '+03:00'
|
||||
|
||||
const toCompanyDateTime = (date: string, time: string) => {
|
||||
return `${date}T${time}:00${COMPANY_UTC_OFFSET}`
|
||||
}
|
||||
|
||||
const formatCompanyTime = (value: string) => {
|
||||
return new Date(value).toLocaleTimeString('en-US', {
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
timeZone: COMPANY_TIME_ZONE,
|
||||
})
|
||||
}
|
||||
|
||||
const formatCompanyDate = (value: string) => {
|
||||
return new Date(value).toLocaleDateString('ar-SA', {
|
||||
timeZone: COMPANY_TIME_ZONE,
|
||||
})
|
||||
}
|
||||
|
||||
export default function PortalLeavePage() {
|
||||
const [leaveBalance, setLeaveBalance] = useState<any[]>([])
|
||||
const [leaves, setLeaves] = useState<any[]>([])
|
||||
@@ -53,10 +74,6 @@ export default function PortalLeavePage() {
|
||||
}
|
||||
|
||||
useEffect(() => load(), [])
|
||||
const toCompanyDateTime = (date: string, time: string) => {
|
||||
return `${date}T${time}:00+03:00`
|
||||
}
|
||||
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault()
|
||||
|
||||
@@ -89,9 +106,12 @@ export default function PortalLeavePage() {
|
||||
return
|
||||
}
|
||||
|
||||
payload.startDate = `${form.leaveDate}T${form.startTime}:00+03:00`
|
||||
payload.endDate = `${form.leaveDate}T${form.endTime}:00+03:00`
|
||||
}
|
||||
payload.leaveDate = form.leaveDate
|
||||
payload.startTime = form.startTime
|
||||
payload.endTime = form.endTime
|
||||
payload.startDate = toCompanyDateTime(form.leaveDate, form.startTime)
|
||||
payload.endDate = toCompanyDateTime(form.leaveDate, form.endTime)
|
||||
}
|
||||
|
||||
setSubmitting(true)
|
||||
|
||||
@@ -110,7 +130,15 @@ export default function PortalLeavePage() {
|
||||
toast.success('تم إرسال طلب الإجازة')
|
||||
load()
|
||||
})
|
||||
.catch(() => toast.error('فشل إرسال الطلب'))
|
||||
.catch((err: any) => {
|
||||
const message =
|
||||
err.response?.data?.message ||
|
||||
err.response?.data?.error ||
|
||||
'فشل إرسال الطلب'
|
||||
|
||||
console.error('Leave request error:', err.response?.data || err)
|
||||
toast.error(message)
|
||||
})
|
||||
.finally(() => setSubmitting(false))
|
||||
}
|
||||
|
||||
@@ -165,12 +193,12 @@ export default function PortalLeavePage() {
|
||||
<p className="font-medium">
|
||||
{l.leaveType === 'ANNUAL' ? 'سنوية' : 'ساعية'} -{' '}
|
||||
{l.leaveType === 'HOURLY'
|
||||
? `${new Date(l.startDate).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} - ${new Date(l.endDate).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}`
|
||||
? `${formatCompanyTime(l.startDate)} - ${formatCompanyTime(l.endDate)}`
|
||||
: `${l.days} يوم`}
|
||||
</p>
|
||||
|
||||
<p className="text-sm text-gray-600">
|
||||
{new Date(l.startDate).toLocaleDateString('ar-SA')} - {new Date(l.endDate).toLocaleDateString('ar-SA')}
|
||||
{formatCompanyDate(l.startDate)} - {formatCompanyDate(l.endDate)}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user