Skip to content
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
dfdc2a9
fixed bugs
swarkewalia Mar 8, 2026
ca9919e
reset error state
swarkewalia Mar 8, 2026
40a6608
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 8, 2026
30f43c5
order mgmt changs
swarkewalia Mar 8, 2026
cb62194
Merge branch 'sk/SSF-150-food-request-bugs' of https://github.com/Cod…
swarkewalia Mar 8, 2026
2f493a2
Revert "Merge branch 'main' into sk/SSF-150-food-request-bugs"
swarkewalia Mar 8, 2026
f8f6680
revert accidental changes
swarkewalia Mar 8, 2026
438f173
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 9, 2026
28726d6
fix bug
swarkewalia Mar 11, 2026
998d1c4
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 11, 2026
9eaa800
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 11, 2026
c39fc3e
fix bug
swarkewalia Mar 11, 2026
7119186
Merge branch 'sk/SSF-150-food-request-bugs' of https://github.com/Cod…
swarkewalia Mar 11, 2026
4c60174
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 14, 2026
e58ee5c
fixed alert
swarkewalia Mar 14, 2026
ed6f31d
Merge branch 'sk/SSF-150-food-request-bugs' of https://github.com/Cod…
swarkewalia Mar 14, 2026
63f177e
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 17, 2026
f2b5c64
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 19, 2026
19bafc9
refactored modal alert to use new hook
swarkewalia Mar 19, 2026
77c534b
Merge branch 'sk/SSF-150-food-request-bugs' of https://github.com/Cod…
swarkewalia Mar 19, 2026
091b0d9
Merge branch 'main' into sk/SSF-150-food-request-bugs
swarkewalia Mar 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 25 additions & 38 deletions apps/frontend/src/components/forms/requestFormModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { ChevronDownIcon } from 'lucide-react';
import { FloatingAlert } from '@components/floatingAlert';
import apiClient from '@api/apiClient';
import { TagGroup } from './tagGroup';
import { useAlert } from '../../hooks/alert';

interface FoodRequestFormModalProps {
previousRequest?: FoodRequest;
Expand All @@ -39,28 +40,26 @@ const FoodRequestFormModal: React.FC<FoodRequestFormModalProps> = ({
const [selectedFoodTypes, setSelectedFoodTypes] = useState<FoodType[]>([]);
const [requestedSize, setRequestedSize] = useState<string>('');
const [additionalNotes, setAdditionalNotes] = useState<string>('');
const [alert, setAlert] = useState<{
key: number;
isError: boolean;
message: string;
}>({
key: 0,
isError: true,
message: '',
});
const [errorAlertState, setErrorMessage] = useAlert();
const [successAlertState, setSuccessMessage] = useAlert();

const isFormValid = requestedSize !== '' && selectedFoodTypes.length > 0;

useEffect(() => {
if (isOpen && previousRequest) {
setSelectedFoodTypes(previousRequest.requestedFoodTypes || []);
setRequestedSize(previousRequest.requestedSize || '');
setAdditionalNotes(
previousRequest.additionalInformation ||
'No additional information supplied',
);
if (isOpen) {
if (previousRequest) {
setSelectedFoodTypes(previousRequest.requestedFoodTypes || []);
setRequestedSize(previousRequest.requestedSize || '');
setAdditionalNotes(previousRequest.additionalInformation || '');
} else {
setSelectedFoodTypes([]);
setRequestedSize('');
setAdditionalNotes('');
}
setErrorMessage('');
setSuccessMessage('');
}
}, [isOpen, previousRequest]);
}, [isOpen, previousRequest, setErrorMessage, setSuccessMessage]);

const handleSubmit = async () => {
const foodRequestData: CreateFoodRequestBody = {
Expand All @@ -72,19 +71,11 @@ const FoodRequestFormModal: React.FC<FoodRequestFormModalProps> = ({

try {
await apiClient.createFoodRequest(foodRequestData);
setAlert((prev) => ({
key: prev.key + 1,
isError: false,
message: 'Request submitted',
}));
setSuccessMessage('Request submitted');
onClose();
onSuccess();
} catch {
setAlert((prev) => ({
key: prev.key + 1,
isError: true,
message: 'Request could not be submitted.',
}));
setErrorMessage('Request could not be submitted.');
}
};

Expand All @@ -97,18 +88,18 @@ const FoodRequestFormModal: React.FC<FoodRequestFormModalProps> = ({
}}
closeOnInteractOutside
>
{alert.message && alert.isError && (
{errorAlertState && (
<FloatingAlert
key={alert.key}
message={alert.message}
key={errorAlertState.id}
message={errorAlertState.message}
status="error"
timeout={6000}
/>
)}
{alert.message && !alert.isError && (
{successAlertState && (
<FloatingAlert
key={alert.key}
message={alert.message}
key={successAlertState.id}
message={successAlertState.message}
status="info"
timeout={6000}
/>
Expand Down Expand Up @@ -290,11 +281,7 @@ const FoodRequestFormModal: React.FC<FoodRequestFormModalProps> = ({
if (words.length <= 250) {
setAdditionalNotes(e.target.value);
} else {
setAlert((prev) => ({
key: prev.key + 1,
isError: true,
message: 'Exceeded word limit',
}));
setErrorMessage('Exceeded word limit');
}
}}
/>
Expand Down
Loading