From 09f77a79a9d032ad47bd71289bedec0ce308897c Mon Sep 17 00:00:00 2001 From: dburkhart07 Date: Sun, 19 Jan 2025 21:33:08 -0500 Subject: [PATCH 01/28] Initial commit for this branch --- apps/backend/src/food-requests/food-requests.controller.ts | 0 apps/backend/src/food-requests/food-requests.entity.ts | 0 apps/backend/src/food-requests/food-requests.module.ts | 0 apps/backend/src/food-requests/food-requests.service.ts | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/backend/src/food-requests/food-requests.controller.ts create mode 100644 apps/backend/src/food-requests/food-requests.entity.ts create mode 100644 apps/backend/src/food-requests/food-requests.module.ts create mode 100644 apps/backend/src/food-requests/food-requests.service.ts diff --git a/apps/backend/src/food-requests/food-requests.controller.ts b/apps/backend/src/food-requests/food-requests.controller.ts new file mode 100644 index 00000000..e69de29b diff --git a/apps/backend/src/food-requests/food-requests.entity.ts b/apps/backend/src/food-requests/food-requests.entity.ts new file mode 100644 index 00000000..e69de29b diff --git a/apps/backend/src/food-requests/food-requests.module.ts b/apps/backend/src/food-requests/food-requests.module.ts new file mode 100644 index 00000000..e69de29b diff --git a/apps/backend/src/food-requests/food-requests.service.ts b/apps/backend/src/food-requests/food-requests.service.ts new file mode 100644 index 00000000..e69de29b From 4d303ea47b68986bf219939c523f2415f05d6997 Mon Sep 17 00:00:00 2001 From: Justin Wang Date: Mon, 20 Jan 2025 23:35:29 -0500 Subject: [PATCH 02/28] food request modal and button, updated form contents --- .../src/components/forms/requestFormModal.tsx | 243 ++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 apps/frontend/src/components/forms/requestFormModal.tsx diff --git a/apps/frontend/src/components/forms/requestFormModal.tsx b/apps/frontend/src/components/forms/requestFormModal.tsx new file mode 100644 index 00000000..196eecd3 --- /dev/null +++ b/apps/frontend/src/components/forms/requestFormModal.tsx @@ -0,0 +1,243 @@ +import { + Flex, + Box, + Heading, + FormControl, + FormLabel, + Input, + Button, + FormHelperText, + Checkbox, + Stack, + Textarea, + SimpleGrid, + NumberInput, + NumberInputField, + NumberInputStepper, + NumberIncrementStepper, + NumberDecrementStepper, + CheckboxGroup, + Modal, + ModalOverlay, + ModalContent, + ModalHeader, + ModalBody, + ModalCloseButton, + useDisclosure, + RadioGroup, + HStack, + Radio, +} from '@chakra-ui/react'; +import { + Form, + redirect, + ActionFunction, + ActionFunctionArgs, +} from 'react-router-dom'; + +// should be an API call, dummy data for now +const getMenu = () => { + return { + Dairy: [ + 'Whole Milk', + 'Lactose-Free Milk', + 'Salted Butter', + 'Eggs', + 'Yogurt', + 'American Cheese', + 'Mozzarella Cheese', + ], + Meat: [ + 'Chicken Breast', + 'Ground Beef', + 'Ground Pork', + 'Ground Turkey', + 'Chicken Strips', + 'Turkey Bacon', + ], + Fruit: [ + 'Pear', + 'Orange', + 'Banana', + 'Lychee', + 'Tangerine', + 'Tomato', + 'Pineapple', + ], + Vegetables: ['Cauliflower', '小白菜', 'Spinach', 'Broccolini', 'Seaweed'], + Snacks: [ + 'Oreos (20ct)', + 'Potato Chips', + 'Chocolate Bars (4 ct)', + 'Nimbu Masala', + ], + Alcohol: [ + 'Red Wine', + 'Fireball', + 'Tequila', + 'Sake', + 'Malt Liquor', + 'Vodka', + 'Rum', + ], + }; +}; + +// might be an API call, dummy data for now +const getAllergens = () => { + return [ + 'Dairy-Free Alternatives', + 'Dried Beans (Gluten-Free, Nut-Free)', + 'Gluten-Free Baking/Pancake Mixes', + 'Gluten-Free Bread', + 'Gluten-Free Tortillas', + 'Granola', + 'Masa Harina Flour', + 'Nut-Free Granola Bars', + 'Olive Oil', + 'Refrigerated Meals', + 'Rice Noodles', + 'Seed Butters (Peanut Butter Alternative)', + 'Whole-Grain Cookies', + 'Quinoa', + ]; +}; + +const FoodRequestFormModal: React.FC = () => { + const renderAllergens = () => { + return getAllergens().map((a) => ( + + {a} + + )); + }; + + const renderMenuSection = (sectionItems: Array) => { + return ( + + {sectionItems.map((x) => ( + + + + + + + + +

{x}

+
+ ))} +
+ ); + }; + + const renderMenu = () => { + const menu: Map> = new Map(Object.entries(getMenu())); + const menuSections: JSX.Element[] = []; + menu.forEach((v, k) => { + menuSections.push( +
+ + {k} + + {renderMenuSection(v)} +
, + ); + }); + return menuSections; + }; + + const { isOpen, onOpen, onClose } = useDisclosure(); + return ( + + + + + + + SSF Food Request Form + + + +
+ + + Requested Size of Shipment + + + + Very Small (1-2 boxes) + Small (2-5 boxes) + Medium (5-10 boxes) + Large (10+ boxes) + + + + + + Requested Shipment + + + + {renderAllergens()} + + + + + + Additional Comments + +