gantt-board/src/lib/utils.ts

34 lines
927 B
TypeScript

import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}
const DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/
function parseDateParts(value: string): [number, number, number] {
const [year, month, day] = value.split("-").map(Number)
return [year, month, day]
}
export function parseSprintStart(startDate: string): Date {
if (DATE_ONLY_PATTERN.test(startDate)) {
const [year, month, day] = parseDateParts(startDate)
return new Date(year, month - 1, day, 0, 0, 0, 0)
}
return new Date(startDate)
}
export function parseSprintEnd(endDate: string): Date {
if (DATE_ONLY_PATTERN.test(endDate)) {
const [year, month, day] = parseDateParts(endDate)
return new Date(year, month - 1, day, 23, 59, 59, 999)
}
const parsed = new Date(endDate)
parsed.setHours(23, 59, 59, 999)
return parsed
}