|
|
|
@@ -28,6 +28,9 @@ import { |
|
|
|
} from "@/app/api/jo/actions"; |
|
|
|
import SafeApexCharts from "@/components/charts/SafeApexCharts"; |
|
|
|
|
|
|
|
/** Day.js has no typed `dayjs.invalid()` factory; Invalid Date parses to an invalid Dayjs instance. */ |
|
|
|
const DAYJS_INVALID = dayjs(new Date(Number.NaN)); |
|
|
|
|
|
|
|
type FloorFilter = "all" | "2/F" | "3/F" | "4/F"; |
|
|
|
|
|
|
|
type DailySummaryRow = { |
|
|
|
@@ -51,14 +54,14 @@ const parseRecordDate = (record: CompletedJobOrderPickOrderDashboardRecord): day |
|
|
|
} |
|
|
|
|
|
|
|
const raw = record.completedDate ?? record.planStart; |
|
|
|
if (!raw) return dayjs.invalid(); |
|
|
|
if (!raw) return DAYJS_INVALID; |
|
|
|
|
|
|
|
if (Array.isArray(raw)) { |
|
|
|
const [year, month, day] = raw; |
|
|
|
if (year != null && month != null && day != null) { |
|
|
|
return dayjs(new Date(Number(year), Number(month) - 1, Number(day))); |
|
|
|
} |
|
|
|
return dayjs.invalid(); |
|
|
|
return DAYJS_INVALID; |
|
|
|
} |
|
|
|
|
|
|
|
if (typeof raw === "string") { |
|
|
|
|