34 lines
927 B
TypeScript
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
|
|
}
|