From 49d5b782a95fe4e7b78f29d3e07211bf41b2738c Mon Sep 17 00:00:00 2001 From: Aaron William Po Date: Fri, 1 Dec 2023 14:34:26 -0500 Subject: [PATCH] Add proper toast notifications to edit/create beer post. fix delete --- src/components/CreateBeerPostForm.tsx | 7 ++++--- src/components/EditBeerPostForm.tsx | 12 ++++++++---- src/pages/api/beers/[id]/index.ts | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/CreateBeerPostForm.tsx b/src/components/CreateBeerPostForm.tsx index d77ef37..2ef6fcf 100644 --- a/src/components/CreateBeerPostForm.tsx +++ b/src/components/CreateBeerPostForm.tsx @@ -12,6 +12,7 @@ import sendUploadBeerImagesRequest from '@/requests/BeerImage/sendUploadBeerImag import toast from 'react-hot-toast'; +import createErrorToast from '@/util/createErrorToast'; import Button from './ui/forms/Button'; import FormError from './ui/forms/FormError'; import FormInfo from './ui/forms/FormInfo'; @@ -51,14 +52,14 @@ const CreateBeerPostForm: FunctionComponent = ({ } try { + const loadingToast = toast.loading('Creating beer post...'); const beerPost = await sendCreateBeerPostRequest(data); await sendUploadBeerImagesRequest({ beerPost, images: data.images }); await router.push(`/beers/${beerPost.id}`); + toast.dismiss(loadingToast); toast.success('Created beer post.'); } catch (e) { - const errorMessage = e instanceof Error ? e.message : 'Something went wrong.'; - - toast.error(errorMessage); + createErrorToast(e); } }; diff --git a/src/components/EditBeerPostForm.tsx b/src/components/EditBeerPostForm.tsx index 1897c8f..ca0a8d6 100644 --- a/src/components/EditBeerPostForm.tsx +++ b/src/components/EditBeerPostForm.tsx @@ -9,6 +9,7 @@ import { zodResolver } from '@hookform/resolvers/zod'; import deleteBeerPostRequest from '@/requests/BeerPost/deleteBeerPostRequest'; import EditBeerPostValidationSchema from '@/services/BeerPost/schema/EditBeerPostValidationSchema'; import sendEditBeerPostRequest from '@/requests/BeerPost/sendEditBeerPostRequest'; +import createErrorToast from '@/util/createErrorToast'; import Button from './ui/forms/Button'; import FormError from './ui/forms/FormError'; import FormInfo from './ui/forms/FormInfo'; @@ -33,23 +34,26 @@ const EditBeerPostForm: FC = ({ previousValues }) => { const { isSubmitting, errors } = formState; const onSubmit: SubmitHandler = async (data) => { try { + const loadingToast = toast.loading('Editing beer post...'); await sendEditBeerPostRequest(data); await router.push(`/beers/${data.id}`); toast.success('Edited beer post.'); + toast.dismiss(loadingToast); } catch (e) { - const errorMessage = e instanceof Error ? e.message : 'Something went wrong.'; - toast.error(errorMessage); + createErrorToast(e); await router.push(`/beers/${data.id}`); } }; const onDelete = async () => { try { + const loadingToast = toast.loading('Deleting beer post...'); await deleteBeerPostRequest(previousValues.id); + toast.dismiss(loadingToast); await router.push('/beers'); + toast.success('Deleted beer post.'); } catch (e) { - const errorMessage = e instanceof Error ? e.message : 'Something went wrong.'; - toast.error(errorMessage); + createErrorToast(e); await router.push(`/beers`); } }; diff --git a/src/pages/api/beers/[id]/index.ts b/src/pages/api/beers/[id]/index.ts index 5517867..aeb526d 100644 --- a/src/pages/api/beers/[id]/index.ts +++ b/src/pages/api/beers/[id]/index.ts @@ -57,7 +57,7 @@ const editBeerPost = async ( const deleteBeerPost = async (req: BeerPostRequest, res: NextApiResponse) => { const { id } = req.query; - const deleted = deleteBeerPostById({ beerPostId: id }); + const deleted = await deleteBeerPostById({ beerPostId: id }); if (!deleted) { throw new ServerError('Beer post not found', 404); }