diff --git a/nextjs/src/app/course/[courseName]/modules/NewItemForm.tsx b/nextjs/src/app/course/[courseName]/modules/NewItemForm.tsx index cfb6bca..fe5cdb2 100644 --- a/nextjs/src/app/course/[courseName]/modules/NewItemForm.tsx +++ b/nextjs/src/app/course/[courseName]/modules/NewItemForm.tsx @@ -13,6 +13,7 @@ import { LocalAssignmentGroup } from "@/models/local/assignment/localAssignmentG import { dateToMarkdownString, getDateFromString, + getDateFromStringOrThrow, } from "@/models/local/timeUtils"; import React, { useState } from "react"; @@ -66,6 +67,18 @@ export default function NewItemForm({ dueDate === "" ? dueDate : dateToMarkdownString(defaultDate ?? new Date()); + const lockAt = + settings.defaultLockHoursOffset === undefined + ? undefined + : dateToMarkdownString( + addHoursToDate( + getDateFromStringOrThrow( + dueDate, + "getting default lock time" + ), + settings.defaultLockHoursOffset + ) + ); console.log("submitting"); if (!moduleName) { @@ -77,6 +90,7 @@ export default function NewItemForm({ name, description: "", dueAt, + lockAt, submissionTypes: settings.defaultAssignmentSubmissionTypes, allowedFileUploadExtensions: settings.defaultFileUploadTypes, rubric: [], @@ -90,6 +104,7 @@ export default function NewItemForm({ name, description: "", dueAt, + lockAt, shuffleAnswers: true, showCorrectAnswers: true, oneQuestionAtATime: true, @@ -160,3 +175,9 @@ export default function NewItemForm({ ); } + +function addHoursToDate(date: Date, hours: number): Date { + const newDate = new Date(date.getTime()); + newDate.setHours(newDate.getHours() + hours); + return newDate; +} diff --git a/nextjs/src/app/course/[courseName]/settings/DefaultLockOffset.tsx b/nextjs/src/app/course/[courseName]/settings/DefaultLockOffset.tsx index 4b9cd8a..e9b5bb9 100644 --- a/nextjs/src/app/course/[courseName]/settings/DefaultLockOffset.tsx +++ b/nextjs/src/app/course/[courseName]/settings/DefaultLockOffset.tsx @@ -18,7 +18,10 @@ export default function DefaultLockOffset() { const id = setTimeout(() => { try { const hoursNumber = parseInt(hoursOffset); - if (hoursNumber && hoursNumber !== settings.defaultLockHoursOffset) { + if ( + !Number.isNaN(hoursNumber) && + hoursNumber !== settings.defaultLockHoursOffset + ) { updateSettings.mutate({ ...settings, defaultLockHoursOffset: hoursNumber,