diff --git a/apps/frontend/src/components/forms/orderDetailsModal.tsx b/apps/frontend/src/components/forms/orderDetailsModal.tsx index 672fefe0..917bc484 100644 --- a/apps/frontend/src/components/forms/orderDetailsModal.tsx +++ b/apps/frontend/src/components/forms/orderDetailsModal.tsx @@ -63,7 +63,7 @@ const OrderDetailsModal: React.FC = ({ {foodRequest && ( <> - {order.pantry.pantryName} + {order.request.pantry.pantryName} Requested {formatDate(foodRequest.requestedAt)} diff --git a/apps/frontend/src/components/forms/pantryApplicationForm.tsx b/apps/frontend/src/components/forms/pantryApplicationForm.tsx index df185caa..a132376d 100644 --- a/apps/frontend/src/components/forms/pantryApplicationForm.tsx +++ b/apps/frontend/src/components/forms/pantryApplicationForm.tsx @@ -23,7 +23,7 @@ import { Form, redirect, } from 'react-router-dom'; -import React, { useMemo, useState } from 'react'; +import React, { useState } from 'react'; import { USPhoneInput } from '@components/forms/usPhoneInput'; import { PantryApplicationDto } from '../../types/types'; import ApiClient from '@api/apiClient'; diff --git a/apps/frontend/src/components/forms/pantryApplicationModal.tsx b/apps/frontend/src/components/forms/pantryApplicationModal.tsx index ceb8179c..4c973fd6 100644 --- a/apps/frontend/src/components/forms/pantryApplicationModal.tsx +++ b/apps/frontend/src/components/forms/pantryApplicationModal.tsx @@ -1,6 +1,5 @@ -import React, { useEffect, useState } from 'react'; +import React from 'react'; import { Button, Dialog, Grid, GridItem, Text } from '@chakra-ui/react'; -import ApiClient from '@api/apiClient'; import { Pantry } from 'types/types'; interface PantryApplicationModalProps { @@ -48,11 +47,6 @@ const PantryApplicationModal: React.FC = ({ Phone {pantryUser.phone} - - - Role - - {pantryUser.role} ) : ( No user details available. diff --git a/apps/frontend/src/containers/adminOrderManagement.tsx b/apps/frontend/src/containers/adminOrderManagement.tsx index 60273c42..6edc9289 100644 --- a/apps/frontend/src/containers/adminOrderManagement.tsx +++ b/apps/frontend/src/containers/adminOrderManagement.tsx @@ -120,8 +120,12 @@ const AdminOrderManagement: React.FC = () => { for (const order of data) { const status = order.status; + const orderWithColor: OrderWithColor = { ...order }; - if (order.pantry.volunteers && order.pantry.volunteers.length > 0) { + if ( + order.request.pantry.volunteers && + order.request.pantry.volunteers.length > 0 + ) { orderWithColor.assigneeColor = ASSIGNEE_COLORS[counters[status] % ASSIGNEE_COLORS.length]; counters[status]++; @@ -170,7 +174,7 @@ const AdminOrderManagement: React.FC = () => { // Get pantry options through all orders in the status const pantryOptions = [ - ...new Set(allOrders.map((o) => o.pantry.pantryName)), + ...new Set(allOrders.map((o) => o.request.pantry.pantryName)), ].sort((a, b) => a.localeCompare(b)); // Apply filters and sorting to all orders @@ -178,7 +182,9 @@ const AdminOrderManagement: React.FC = () => { .filter( (o) => filterState.selectedPantries.length === 0 || - filterState.selectedPantries.includes(o.pantry.pantryName), + filterState.selectedPantries.includes( + o.request.pantry.pantryName, + ), ) .sort((a, b) => filterState.sortAsc @@ -559,134 +565,153 @@ const OrderStatusSection: React.FC = ({ {...tableHeaderStyles} borderRight="1px solid" borderRightColor="neutral.100" - width="25%" + width="18%" > - Pantry + Status Assignee + + Pantry + - Status + Dates - Date Started + Action Required - {orders.map((order, index) => ( - - - - {selectedOrderId === order.orderId && ( - onOrderSelect(null)} - /> - )} - - - {order.pantry.pantryName} - - { + const pantry = order.request.pantry; + const volunteers = pantry.volunteers || []; + + return ( + - - {order.pantry.volunteers && - order.pantry.volunteers.length > 0 ? ( - - {/* TODO: Change logic later to only get one volunteer */} - {order.pantry.volunteers[0].firstName - .charAt(0) - .toUpperCase()} - {order.pantry.volunteers[0].lastName - .charAt(0) - .toUpperCase()} - - ) : ( - No Assignees + + {selectedOrderId === order.orderId && ( + onOrderSelect(null)} + /> )} - - - - + - {capitalize(order.status)} - - - - {formatDate(order.createdAt)} - - - ))} + + {capitalize(order.status)} + + + + + {volunteers && volunteers.length > 0 ? ( + + {/* TODO: Change logic later to only get one volunteer */} + {volunteers[0].firstName.charAt(0).toUpperCase()} + {volunteers[0].lastName.charAt(0).toUpperCase()} + + ) : ( + No Assignees + )} + + + + {pantry.pantryName} + + + {formatDate(order.createdAt)}- + {order.deliveredAt && formatDate(order.deliveredAt)} + + + {/* TODO: IMPLEMENT WHAT GOES HERE */} + + + ); + })} diff --git a/apps/frontend/src/types/types.ts b/apps/frontend/src/types/types.ts index 4b6d5052..cdac9fc1 100644 --- a/apps/frontend/src/types/types.ts +++ b/apps/frontend/src/types/types.ts @@ -46,7 +46,7 @@ export interface Pantry { secondaryContactPhone?: string; pantryUser?: User; status: ApplicationStatus; - dateApplied: Date; + dateApplied: string; activities: Activity[]; activitiesComments?: string; itemsInStock: string; @@ -182,8 +182,8 @@ export interface FoodRequest { requestedSize: string; requestedItems: string[]; additionalInformation: string | null; - requestedAt: Date; - dateReceived: Date | null; + requestedAt: string; + dateReceived: string | null; feedback: string | null; photos: string[] | null; orders?: Order[]; @@ -227,7 +227,7 @@ export interface CreateFoodRequestBody { additionalInformation: string | null | undefined; status: string; fulfilledBy: number | null | undefined; - dateReceived: Date | null | undefined; + dateReceived: string | null | undefined; feedback: string | null | undefined; photos: string[] | null | undefined; } @@ -286,15 +286,18 @@ export interface OrderSummary { orderId: number; status: OrderStatus; createdAt: string; - shippedAt: string | null; - deliveredAt: string | null; - pantry: { - pantryName: string; - volunteers?: { - id: number; - firstName: string; - lastName: string; - }[]; + shippedAt?: string; + deliveredAt?: string; + request: { + pantryId: number; + pantry: { + pantryName: string; + volunteers?: { + id: number; + firstName: string; + lastName: string; + }[]; + }; }; }