mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 15:48:32 -06:00
31 lines
863 B
TypeScript
31 lines
863 B
TypeScript
"use client";
|
|
import {
|
|
getDateFromStringOrThrow,
|
|
dateToMarkdownString,
|
|
} from "@/features/local/utils/timeUtils";
|
|
|
|
export function getNewLockDate(
|
|
originalDueDate: string,
|
|
originalLockDate: string | undefined,
|
|
dayAsDate: Date
|
|
): string | undefined {
|
|
// todo: preserve previous due date / lock date offset
|
|
const dueDate = getDateFromStringOrThrow(originalDueDate, "dueAt date");
|
|
const lockDate =
|
|
originalLockDate === undefined
|
|
? undefined
|
|
: getDateFromStringOrThrow(originalLockDate, "lockAt date");
|
|
|
|
const originalOffset =
|
|
lockDate === undefined ? undefined : lockDate.getTime() - dueDate.getTime();
|
|
|
|
const newLockDate =
|
|
originalOffset === undefined
|
|
? undefined
|
|
: new Date(dayAsDate.getTime() + originalOffset);
|
|
|
|
return newLockDate === undefined
|
|
? undefined
|
|
: dateToMarkdownString(newLockDate);
|
|
}
|