From 1ad4b7479f051e870bb85748cc50beb77bc2ee30 Mon Sep 17 00:00:00 2001
From: Oliver Barnwell
Date: Thu, 14 Oct 2021 14:52:44 +0100
Subject: [PATCH] fix: allow the user to remove loos once again (#1200)
---
src/pages/loos/[id]/remove.tsx | 112 ++++++++++++++++++---------------
1 file changed, 61 insertions(+), 51 deletions(-)
diff --git a/src/pages/loos/[id]/remove.tsx b/src/pages/loos/[id]/remove.tsx
index 8cf1643bb..f18a2e3ca 100644
--- a/src/pages/loos/[id]/remove.tsx
+++ b/src/pages/loos/[id]/remove.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
import Head from 'next/head';
import { useUser } from '@auth0/nextjs-auth0';
@@ -12,11 +12,65 @@ import Button from '../../../components/Button';
import Notification from '../../../components/Notification';
import Login from '../../../components/Login';
import PageLoading from '../../../components/PageLoading';
-
import { useRouter } from 'next/router';
+import {
+ useFindLooByIdQuery,
+ useRemoveLooMutation,
+} from '../../../api-client/graphql';
+import { withApollo } from '../../../components/withApollo';
+import { NextPage } from 'next';
const RemovePage = function (props: { match: { params: { id: any } } }) {
const { user, error, isLoading } = useUser();
+
+ const [reason, setReason] = useState('');
+ const router = useRouter();
+ const { id: selectedLooId } = router.query;
+
+ const {
+ data: looData,
+ error: looError,
+ loading: loadingLooData,
+ } = useFindLooByIdQuery({ variables: { id: selectedLooId as string } });
+
+ const [removeLooMutation, { loading: loadingRemove, error: removeError }] =
+ useRemoveLooMutation();
+
+ const updateReason = (evt) => {
+ setReason(evt.currentTarget.value);
+ };
+
+ const onSubmit = async (e: { preventDefault: () => void }) => {
+ e.preventDefault();
+
+ await removeLooMutation({
+ variables: {
+ id: looData.loo.id,
+ reason,
+ },
+ });
+
+ router.push(`/loos/${selectedLooId}?message=removed`);
+ };
+
+ if (removeError || looError) {
+ console.error(removeError || looError);
+ }
+
+ if (loadingLooData || !looData || looError) {
+ return (
+
+
+ {loadingLooData ? 'Fetching Toilet Data' : 'Error finding toilet.'}
+
+
+ );
+ }
+
+ if (!looData.loo.active) {
+ router.push('/');
+ }
+
if (isLoading) {
return ;
}
@@ -24,51 +78,6 @@ const RemovePage = function (props: { match: { params: { id: any } } }) {
if (!user) {
return ;
}
- // const [reason, setReason] = useState('');
- // const router = useRouter();
- // const {id: selectedLooId} = router.query;
-
- // const {
- // isValidating: loadingLooData,
- // data: looData,
- // error: looError,
- // } = useSWR([GET_LOO_BY_ID_QUERY, JSON.stringify({ id: selectedLooId })]);
-
- // const [doRemove, { loading: loadingRemove, error: removeError }] =
- // useMutation(REMOVE_LOO_MUTATION);
-
- // const updateReason = (evt) => {
- // setReason(evt.currentTarget.value);
- // };
-
- // const onSubmit = async (e: { preventDefault: () => void; }) => {
- // e.preventDefault();
-
- // await doRemove({
- // id: looData.loo.id,
- // reason,
- // });
-
- // router.push(`/loos/${selectedLooId}?message=removed`);
- // };
-
- // if (removeError || looError) {
- // console.error(removeError || looError);
- // }
-
- // if (loadingLooData || !looData || looError) {
- // return (
- //
- //
- // {loadingLooData ? 'Fetching Toilet Data' : 'Error finding toilet.'}
- //
- //
- // );
- // }
-
- // if (!looData.loo.active) {
- // router.push('/');
- // }
return (
@@ -89,7 +98,7 @@ const RemovePage = function (props: { match: { params: { id: any } } }) {
using the form below.
- {/*
+