From 1801d7008cf31b0cdcad8b5818cc6bb2d6b59f36 Mon Sep 17 00:00:00 2001
From: Lucas Schoenfelder <les17@inf.ufpr.br>
Date: Mon, 8 Feb 2021 21:33:22 -0300
Subject: [PATCH] added snackbar to provide feedback

---
 src/Components/ReportModal.js | 85 +++++++++++++++++------------------
 1 file changed, 41 insertions(+), 44 deletions(-)

diff --git a/src/Components/ReportModal.js b/src/Components/ReportModal.js
index 736d00b2..079ca75f 100644
--- a/src/Components/ReportModal.js
+++ b/src/Components/ReportModal.js
@@ -16,7 +16,7 @@ GNU Affero General Public License for more details.
 You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
 
-import React, {useContext} from 'react';
+import React, {useContext, useState} from 'react';
 import { Button } from '@material-ui/core';
 import Modal from '@material-ui/core/Modal';
 import Backdrop from '@material-ui/core/Backdrop';
@@ -28,6 +28,7 @@ import ReportUserForm from './ReportUserForm.js'
 import ReportRecursoForm from './ReportRecursoForm.js'
 import ReportColecaoForm from './ReportColecaoForm.js'
 import {postRequest} from './HelperFunctions/getAxiosConfig'
+import SnackbarComponent from './SnackbarComponent.js'
 
 function CloseModalButton (props) {
     return (
@@ -39,6 +40,7 @@ function CloseModalButton (props) {
 
 export default function ReportModal (props) {
     const {state} = useContext(Store)
+    const [snackbarOpen, handleSnackbar] = useState(false)
 
     const handleSubmit  = (complaint_reason_id, description) => {
         const url = `/complaints/`
@@ -52,7 +54,11 @@ export default function ReportModal (props) {
             }
         }
 
-        postRequest(url, payload, (data) => {console.log(data)}, (error) => {console.log(error)})
+        postRequest(url, payload, (data) => {
+            console.log(data)
+            props.handleClose();
+            handleSnackbar(true);
+        }, (error) => {console.log(error)})
 
     }
 
@@ -73,49 +79,40 @@ export default function ReportModal (props) {
             }
     }
 
-    /* const renderForm = (formType) => {
-        switch (formType) {
-						case 'colecao':
-							return (
-								<ReportCollectionForm
-									handleClose={props.handleClose}
-									handleSubmit={handleSubmit}
-								/>
-							);
-							break;
-            }
-    } */
-
     return (
-        <StyledModal
-            aria-labelledby="transition-modal-title"
-            aria-describedby="transition-modal-description"
-            open={props.open}
-
-            centered="true"
-            onClose={props.handleClose}
-            closeAfterTransition
-            BackdropComponent={Backdrop}
-            BackdropProps={{
-                timeout: 500,
-            }}
-        >
-            <Fade in={props.open}>
-                <ReportContainer>
-                    <Header>
-                        <span style={{width:"32px"}}/>
-                        <h2>O que está acontecendo?</h2>
-                        <CloseModalButton handleClose={props.handleClose}/>
-                    </Header>
-
-                    <Content>
-                        {
-                            renderForm(props.form)
-                        }
-                    </Content>
-                </ReportContainer>
-            </Fade>
-        </StyledModal>
+        <React.Fragment>
+            <SnackbarComponent snackbarOpen={snackbarOpen} severity={"success"} handleClose={() => {handleSnackbar(false)}} text={"Sua reclamação foi recebida."}
+                />
+            <StyledModal
+                aria-labelledby="transition-modal-title"
+                aria-describedby="transition-modal-description"
+                open={props.open}
+
+                centered="true"
+                onClose={props.handleClose}
+                closeAfterTransition
+                BackdropComponent={Backdrop}
+                BackdropProps={{
+                    timeout: 500,
+                }}
+            >
+                <Fade in={props.open}>
+                    <ReportContainer>
+                        <Header>
+                            <span style={{width:"32px"}}/>
+                            <h2>O que está acontecendo?</h2>
+                            <CloseModalButton handleClose={props.handleClose}/>
+                        </Header>
+
+                        <Content>
+                            {
+                                renderForm(props.form)
+                            }
+                        </Content>
+                    </ReportContainer>
+                </Fade>
+            </StyledModal>
+        </React.Fragment>
     )
 }
 
-- 
GitLab