diff --git a/src/app/api/file/[fileId]/route.ts b/src/app/api/file/[fileId]/route.ts index c7beea90..9bb48af5 100644 --- a/src/app/api/file/[fileId]/route.ts +++ b/src/app/api/file/[fileId]/route.ts @@ -8,6 +8,7 @@ import { prisma } from "@server/db/client"; import { withSession } from "@server/decorator"; import { driveV3 } from "@server/service"; import moment from "moment"; +import { offSetDateToUTC } from "@utils"; export const PATCH = withSession(async ({ params, session, req }) => { const body = await req.json(); @@ -58,8 +59,7 @@ export const PATCH = withSession(async ({ params, session, req }) => { { status: 400 } ); } - - const formatted_date = moment(fileData.date).format("L"); + const formatted_date = moment(offSetDateToUTC(fileData.date)).format("L"); const body = { name: formatted_date }; diff --git a/src/app/api/file/route.ts b/src/app/api/file/route.ts index ef78c1f7..040379ab 100644 --- a/src/app/api/file/route.ts +++ b/src/app/api/file/route.ts @@ -5,6 +5,7 @@ import { prisma } from "@server/db/client"; import { withSession } from "@server/decorator"; import { driveV3 } from "@server/service"; import moment from "moment"; +import { offSetDateToUTC } from "@utils"; export const POST = withSession(async (request) => { const body = await request.req.json(); @@ -65,7 +66,7 @@ export const POST = withSession(async (request) => { const parentID = foundSenior.folder; - const formatted_date = moment(fileData.date).format("L"); + const formatted_date = moment(offSetDateToUTC(fileData.date)).format("L"); const fileMetadata = { name: [formatted_date], diff --git a/src/components/senior/DisplaySenior.tsx b/src/components/senior/DisplaySenior.tsx index 6837fb77..97fd7269 100644 --- a/src/components/senior/DisplaySenior.tsx +++ b/src/components/senior/DisplaySenior.tsx @@ -2,7 +2,13 @@ import SearchableContainer from "@components/SearchableContainer"; import { Prisma, User } from "@prisma/client"; -import { compareUser, formatFileDate, fullName, seniorFullName } from "@utils"; +import { + compareUser, + formatFileDate, + fullName, + offSetDateToUTC, + seniorFullName, +} from "@utils"; import { File } from "@components/file"; import AddFile from "@components/file/AddFile"; import { v4 as uuid } from "uuid"; @@ -48,7 +54,10 @@ const DisplaySenior = (props: DisplayProps) => { seniorId: senior.id, }); }; - + const seniorFiles = senior.Files.map((file) => ({ + ...file, + date: offSetDateToUTC(file.date), + })); return (

@@ -79,7 +88,7 @@ const DisplaySenior = (props: DisplayProps) => { setFileEdit={canAddFile ? setFileEdit : undefined} /> )} - elements={senior.Files.sort( + elements={seniorFiles.sort( (fileA, fileB) => fileA.date.getTime() - fileB.date.getTime() )} search={(file, filter) => formatFileDate(file.date).includes(filter)} @@ -88,7 +97,7 @@ const DisplaySenior = (props: DisplayProps) => { fileObj.date); - console.log(excludeDates); const excludedDatesString = excludeDates .map((dateObj) => dateObj.toDateString()) .filter((date) => editFile?.date.toDateString() !== date ?? true); @@ -107,7 +106,6 @@ const AddFile = ({ const router = useRouter(); const [error, setError] = useState(false); const [selectedTags, setSelectedTags] = useState([]); - const handleResetState = () => { setStartDate(new Date()); setSelectedTags([]); @@ -156,7 +154,6 @@ const AddFile = ({ } return !error ? ( - //
Create New File
diff --git a/src/server/model/index.ts b/src/server/model/index.ts index 1d43796d..c96705ff 100644 --- a/src/server/model/index.ts +++ b/src/server/model/index.ts @@ -13,10 +13,13 @@ export const seniorSchema = z.object({ ChapterID: z.string(), }) satisfies z.ZodType; +/* https://stackoverflow.com/questions/49407453/setting-sethours-zero-not-working-in-nodejs + Stores Date object at 0:00:00 UTC time +*/ export const File = z.object({ date: z.string().transform((val) => { const date = new Date(val); - date.setHours(0, 0, 0, 0); + date.setUTCHours(0, 0, 0, 0); return date; }), filetype: z.string(), diff --git a/src/utils/index.tsx b/src/utils/index.tsx index 97c8e523..30c20ca2 100644 --- a/src/utils/index.tsx +++ b/src/utils/index.tsx @@ -86,3 +86,7 @@ export const sortedStudents = (students: User[]) => { return students.sort(comparePositions); }; + +export const offSetDateToUTC = (date: Date) => { + return new Date(date.getTime() + date.getTimezoneOffset() * 60000); +};