fix some bugs

This commit is contained in:
2026-08-06 17:12:57 +03:30
parent 7eef5e64b3
commit 72ff454c90
103 changed files with 6506 additions and 1573 deletions
+15 -9
View File
@@ -45,16 +45,22 @@ const persianDateTimeFormatter = new Intl.DateTimeFormat('fa-IR-u-ca-persian', {
function toDateValue(date: string | Date): Date {
if (typeof date !== 'string') return date
if (/^\d{4}-\d{2}-\d{2}$/.test(date)) return parseISODate(date)
if (/^\d{4}-\d{2}-\d{2}/.test(date)) return parseISODate(date)
return new Date(date)
}
export function formatDate(date: string | Date): string {
return persianDateFormatter.format(toDateValue(date))
export function formatDate(date: string | Date | null | undefined): string {
if (!date) return '—'
const value = toDateValue(date)
if (Number.isNaN(value.getTime())) return '—'
return persianDateFormatter.format(value)
}
export function formatDateTime(date: string | Date): string {
return persianDateTimeFormatter.format(toDateValue(date))
export function formatDateTime(date: string | Date | null | undefined): string {
if (!date) return '—'
const value = toDateValue(date)
if (Number.isNaN(value.getTime())) return '—'
return persianDateTimeFormatter.format(value)
}
export function formatTime(date: string | Date): string {
@@ -70,10 +76,10 @@ export function toPersianDigits(input: string): string {
}
export function normalizePhone(phone: string): string {
const digits = phone.replace(/\D/g, '')
if (digits.startsWith('98')) return '0' + digits.slice(2)
if (digits.startsWith('9') && digits.length === 10) return '0' + digits
return digits
let digits = extractNumericString(phone)
if (digits.startsWith('98')) digits = '0' + digits.slice(2)
else if (digits.startsWith('9') && digits.length === 10) digits = '0' + digits
return digits.slice(0, 11)
}
export function generateId(): string {