Skip to content

Commit d7bb3bc

Browse files
committed
fix rendering and notifications
1 parent eb267a2 commit d7bb3bc

File tree

4 files changed

+29
-15
lines changed

4 files changed

+29
-15
lines changed

src/api/routes/roomRequests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ const roomRequestRoutes: FastifyPluginAsync = async (fastify, _options) => {
316316
payload: {
317317
to: [notificationRecipients[fastify.runEnvironment].OfficerBoard],
318318
subject: "New Room Reservation Request",
319-
content: `A new room reservation request has been created (${request.body.host} | ${request.body.title}). Please visit https://${fastify.environmentConfig["UserFacingUrl"]}/roomRequests/${request.body.semester}/${requestId} to view details.`,
319+
content: `A new room reservation request has been created (${request.body.host} | ${request.body.title}). Please visit ${fastify.environmentConfig["UserFacingUrl"]}/roomRequests/${request.body.semester}/${requestId} to view details.`,
320320
},
321321
};
322322
if (!fastify.sqsClient) {

src/common/types/roomRequest.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,11 @@ export const roomRequestBaseSchema = z.object({
155155

156156
export const roomRequestSchema = roomRequestBaseSchema
157157
.extend({
158-
eventStart: z.date({
158+
eventStart: z.coerce.date({
159159
required_error: "Event start date and time is required",
160160
invalid_type_error: "Event start must be a valid date and time",
161161
}),
162-
eventEnd: z.date({
162+
eventEnd: z.coerce.date({
163163
required_error: "Event end date and time is required",
164164
invalid_type_error: "Event end must be a valid date and time",
165165
}),
@@ -184,17 +184,17 @@ export const roomRequestSchema = roomRequestBaseSchema
184184
// Existing fields
185185
hostingMinors: z.boolean(),
186186
locationType: z.enum(["in-person", "virtual", "both"]),
187-
spaceType: z.string(),
188-
specificRoom: z.string().optional(),
187+
spaceType: z.string().min(1),
188+
specificRoom: z.string().min(1),
189189
estimatedAttendees: z.number().positive(),
190-
seatsNeeded: z.number().positive().optional(),
191-
setupDetails: z.string().nullable().optional(),
192-
onCampusPartners: z.string().nullable(),
193-
offCampusPartners: z.string().nullable(),
194-
nonIllinoisSpeaker: z.string().nullable(),
195-
nonIllinoisAttendees: z.number().nullable(),
196-
foodOrDrink: z.boolean().nullable(),
197-
crafting: z.boolean().nullable(),
190+
seatsNeeded: z.number().positive(),
191+
setupDetails: z.string().min(1).nullable().optional(),
192+
onCampusPartners: z.string().min(1).nullable(),
193+
offCampusPartners: z.string().min(1).nullable(),
194+
nonIllinoisSpeaker: z.string().min(1).nullable(),
195+
nonIllinoisAttendees: z.number().min(1).nullable(),
196+
foodOrDrink: z.boolean(),
197+
crafting: z.boolean(),
198198
comments: z.string().optional(),
199199
})
200200
.refine(

src/ui/pages/roomRequest/NewRoomRequest.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,16 @@ const NewRoomRequest: React.FC<NewRoomRequestProps> = ({
316316
return;
317317
}
318318
setIsSubmitting(true);
319-
const values = await roomRequestSchema.parseAsync(apiFormValues);
319+
let values;
320+
try {
321+
values = await roomRequestSchema.parseAsync(apiFormValues);
322+
} catch (e) {
323+
notifications.show({
324+
title: 'Submission failed to validate',
325+
message: 'Check the browser console for more details.',
326+
});
327+
throw e;
328+
}
320329
const response = await createRoomRequest(values);
321330
notifications.show({
322331
title: 'Room Request Submitted',

src/ui/pages/roomRequest/ViewRoomRequest.page.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { useApi } from '@ui/util/api';
1919
import NewRoomRequest from './NewRoomRequest';
2020
import {
2121
RoomRequestGetResponse,
22+
roomRequestSchema,
2223
RoomRequestStatus,
2324
RoomRequestStatusUpdatePostBody,
2425
} from '@common/types/roomRequest';
@@ -48,7 +49,11 @@ export const ViewRoomRequest: React.FC = () => {
4849
};
4950
const updateData = async () => {
5051
const response = await api.get(`/api/v1/roomRequests/${semesterId}/${requestId}`);
51-
setData(response.data);
52+
const parsed = {
53+
data: await roomRequestSchema.parseAsync(response.data.data),
54+
updates: response.data.updates,
55+
};
56+
setData(parsed);
5257
};
5358
const submitStatusChange = async () => {
5459
try {

0 commit comments

Comments
 (0)