diff --git a/src/components/fieldsGetForm/JornalFolder/FormFieldSubform.js b/src/components/fieldsGetForm/JornalFolder/FormFieldSubform.js index 980d51d1e14929daeb064c36ad17b7d630a598c0..78d14e58b981f31a0d7d1a3e88511fd7580f34ef 100644 --- a/src/components/fieldsGetForm/JornalFolder/FormFieldSubform.js +++ b/src/components/fieldsGetForm/JornalFolder/FormFieldSubform.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { useParams } from "react-router-dom"; +import { useParams, useHistory } from "react-router-dom"; import { makeStyles } from "@material-ui/core/styles"; import Grid from "@material-ui/core/Grid"; import Button from "@material-ui/core/Button"; @@ -23,6 +23,7 @@ const useStyles = makeStyles(theme => ({ function FormFieldSubform(props) { const classes = useStyles(); + const history = useHistory(); /** Subform id */ const id = props.id; @@ -38,6 +39,13 @@ function FormFieldSubform(props) { setFormData(res.data); }) .catch(error => { + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } alert( "Um erro inesperado ocorreu ao tentar obter o subform na tela de Jornal." ); diff --git a/src/components/fieldsGetForm/SummaryFolder/FormFieldSubform.js b/src/components/fieldsGetForm/SummaryFolder/FormFieldSubform.js index 50d40f9d354e1b74645891551aaea39272f397e0..b784f808cc9f48d3f1e3413a1d409b9c97a33b7d 100644 --- a/src/components/fieldsGetForm/SummaryFolder/FormFieldSubform.js +++ b/src/components/fieldsGetForm/SummaryFolder/FormFieldSubform.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { useParams } from "react-router-dom"; +import { useParams, useHistory } from "react-router-dom"; import { makeStyles } from "@material-ui/core/styles"; import Grid from "@material-ui/core/Grid"; import api from "../../../api"; @@ -22,6 +22,7 @@ const useStyles = makeStyles(theme => ({ function FormFieldSubform(props) { const classes = useStyles(); + const history = useHistory(); /** Subform id */ const id = props.id; @@ -37,6 +38,13 @@ function FormFieldSubform(props) { setFormData(res.data); }) .catch(error => { + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } alert( "Um erro inesperado ocorreu ao tentar obter o subform na tela de resumo." ); diff --git a/src/components/fieldsVisualizeForm/FormFieldSubform.js b/src/components/fieldsVisualizeForm/FormFieldSubform.js index 5812a36e7698358f43378296abf3d21d6d775027..ce45234bf182734b18365a5875583f567a933aec 100644 --- a/src/components/fieldsVisualizeForm/FormFieldSubform.js +++ b/src/components/fieldsVisualizeForm/FormFieldSubform.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { useParams } from "react-router-dom"; +import { useParams, useHistory } from "react-router-dom"; import { makeStyles } from "@material-ui/core/styles"; import Grid from "@material-ui/core/Grid"; import Button from "@material-ui/core/Button"; @@ -10,19 +10,20 @@ import FormFieldSelect from "./FormFieldSelect"; import FormFieldRadio from "./FormFieldRadio"; import FormFieldCheckbox from "./FormFieldCheckbox"; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(theme => ({ menu: { width: theme.spacing(6), minheight: theme.spacing(15), position: "fixed", top: theme.spacing(10), left: "90%", - padding: theme.spacing(1), - }, + padding: theme.spacing(1) + } })); function FormFieldSubform(props) { const classes = useStyles(); + const history = useHistory(); /** Subform id */ const id = props.id; @@ -34,10 +35,17 @@ function FormFieldSubform(props) { async function getForm(id) { const res = await api .get(`/form/${id}`) - .then(function (res) { + .then(function(res) { setFormData(res.data); }) - .catch((error) => { + .catch(error => { + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } alert("Um erro inesperado ocorreu ao tentar obter o subform."); }); } diff --git a/src/contexts/FormContext.js b/src/contexts/FormContext.js index 015c9e922fef2e709ce809241ce311a825ffb3f1..e49b2a14142a127607a78dc247bd300d2689a42c 100644 --- a/src/contexts/FormContext.js +++ b/src/contexts/FormContext.js @@ -39,6 +39,8 @@ const FormProvider = props => { }) .catch(error => { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); let path = `/signin`; history.push(path); return; diff --git a/src/contexts/useForm.js b/src/contexts/useForm.js index 54e817470374a89f7a98a5721bbfc3494b439e92..f9ad2744e50c33ee8524289ab715da8244476369 100644 --- a/src/contexts/useForm.js +++ b/src/contexts/useForm.js @@ -8,7 +8,7 @@ import { selectOptionsTesting, testSubformSchema, selectOptionTextTesting, - testTextValidation, + testTextValidation } from "../components/fieldsDisplayForm/utils/schemas"; import { pushTitle, @@ -16,7 +16,7 @@ import { pushSelect, pushRadio, pushCheckbox, - pushSubform, + pushSubform } from "../components/fieldsDisplayForm/utils/FormComposition"; import api from "../api"; @@ -237,7 +237,7 @@ const useForm = () => { */ async function setId() { const fetchData = async () => { - await api.get(`/form/${routeId}`).then(async function (res) { + await api.get(`/form/${routeId}`).then(async function(res) { let backForm = createFrontendForm(res.data); for (let i = 1; i < backForm.length; i++) { for (let j = 1; j < form.length; j++) { @@ -247,13 +247,13 @@ const useForm = () => { "question", "description", "options", - "subformId", + "subformId" ]) !== JSON.stringify(form[j], [ "question", "description", "options", - "subformId", + "subformId" ]) || differentValidation(backForm[i], form[j]) ) { @@ -278,18 +278,20 @@ const useForm = () => { const post_response = await api .put(`/form/${routeId}`, data, { headers: { - authorization: `bearer ${window.sessionStorage.getItem("token")}`, - }, + authorization: `bearer ${window.sessionStorage.getItem("token")}` + } }) - .then(function (error) { + .then(function(error) { if (!error.response) { alert("Seu formulário foi atualizado com sucesso."); let path = `/signin`; history.push(path); } }) - .catch(function (error) { + .catch(function(error) { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); let path = `/signin`; history.push(path); return; @@ -306,17 +308,24 @@ const useForm = () => { const post_response = await api .post(`/form`, await createBackendForm(form), { headers: { - authorization: `bearer ${window.sessionStorage.getItem("token")}`, - }, + authorization: `bearer ${window.sessionStorage.getItem("token")}` + } }) - .then(function (error) { + .then(function(error) { if (!error.response) { alert("Seu formulário foi criado com sucesso."); let path = `/signin`; history.push(path); } }) - .catch(function (error) { + .catch(function(error) { + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } alert("Um erro ocorreu."); }); } @@ -342,7 +351,7 @@ const useForm = () => { setValidationValue, removeValidation, onDragEnd, - submit, + submit }; }; diff --git a/src/pages/AnswerForm.js b/src/pages/AnswerForm.js index e4b535e33a4ec8e2fe0ef4f53fcee7e52e71324f..f86d9093decc5391f6306dbf863053d617b9482a 100644 --- a/src/pages/AnswerForm.js +++ b/src/pages/AnswerForm.js @@ -153,6 +153,13 @@ function AnwserForm() { alert("Formulário respondido!"); }) .catch(error => { + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } alert("Ocorreu um erro ao responder seu formulário."); return; }); @@ -199,6 +206,8 @@ function AnwserForm() { }) .catch(error => { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); let path = `/signin`; history.push(path); return; diff --git a/src/pages/GetForm.js b/src/pages/GetForm.js index fb24c5f71243a87935fabf19060bb57772b6751c..b9eabe1a27e175f5e614ac9d6b889f88f588490e 100644 --- a/src/pages/GetForm.js +++ b/src/pages/GetForm.js @@ -1,5 +1,5 @@ import React, { useState, useEffect } from "react"; -import { useParams, Route, Redirect } from "react-router-dom"; +import { useParams, Route, Redirect, useHistory } from "react-router-dom"; import { makeStyles } from "@material-ui/core/styles"; import Grid from "@material-ui/core/Grid"; import api from "../api"; @@ -95,6 +95,7 @@ const theme = createMuiTheme({ function GetForm() { const classes = useStyles(); + const history = useHistory(); /** Form id got from the browser's URL */ const { id } = useParams(); @@ -140,6 +141,8 @@ function GetForm() { }) .catch(error => { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); setToLogin(true); return; } @@ -166,9 +169,14 @@ function GetForm() { setAnswerNum(res.data.answerNumber); }) .catch(error => { - alert( - "Um erro inesperado ocorreu. Contate os desenvolvedores (código 500-2)" - ); + if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); + let path = `/signin`; + history.push(path); + return; + } + alert("Um erro inesperado ocorreu. Contate os desenvolvedores"); }); setIsReady(true); } diff --git a/src/pages/ListForms.js b/src/pages/ListForms.js index d609b390ddc81456d6a1a48b1c558272ef97240d..0f71c7ab6ee3bf1520d6c3150bd97b1c32d65baa 100644 --- a/src/pages/ListForms.js +++ b/src/pages/ListForms.js @@ -93,6 +93,8 @@ export default function ListForms() { }) .catch(error => { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); let path = `/signin`; history.push(path); return; diff --git a/src/pages/VisualizeForm.js b/src/pages/VisualizeForm.js index 1408c85e85965aedbe3b913b1b424a86dd3a2c38..81c22798a22ba8b28a5197a547872bce2e6d501c 100644 --- a/src/pages/VisualizeForm.js +++ b/src/pages/VisualizeForm.js @@ -79,6 +79,8 @@ function VisualizeForm() { }) .catch((error) => { if (error.response.status === 401) { + window.sessionStorage.removeItem("token"); + window.sessionStorage.removeItem("userId"); let path = `/signin`; history.push(path); return;