This commit is contained in:
69
src/App.jsx
69
src/App.jsx
@ -3,13 +3,13 @@ import { Outlet, useNavigate } from "react-router-dom";
|
||||
import { FormsData, UserData, TypeAnswerData, answersData } from "./context";
|
||||
import { useCookies } from "react-cookie";
|
||||
import { globalRender } from "./router/protectedRouting.js";
|
||||
import { verifyUserApi } from "./hooks/api/enterAccountApi.js"
|
||||
import classes from "./assets/styles/app.module.scss"
|
||||
import { verifyUserApi } from "./hooks/api/enterAccountApi.js";
|
||||
import classes from "./assets/styles/app.module.scss";
|
||||
import NavBar from "./components/NavBar.jsx";
|
||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||
import "bootstrap/dist/css/bootstrap.min.css";
|
||||
import InputText from "./components/typeAnswer/InputText.jsx";
|
||||
import TextArea from "./components/typeAnswer/TextArea.jsx";
|
||||
import YesNo from "./components/typeAnswer/YesNo.jsx"
|
||||
import YesNo from "./components/typeAnswer/YesNo.jsx";
|
||||
import InputDate from "./components/typeAnswer/InputDate.jsx";
|
||||
import InputMultipleRadio from "./components/typeAnswer/InputMultipleRadio.jsx";
|
||||
import InputRadio from "./components/typeAnswer/InputRadio.jsx";
|
||||
@ -32,12 +32,13 @@ const App = () => {
|
||||
{id: 8, text: 'Дата', typeTag: InputDate}
|
||||
]);
|
||||
|
||||
// useEffect(() => globalRender(window.location.pathname, user, navigate));
|
||||
const [cookies, _, __] = useCookies(["user"]);
|
||||
// useEffect(() => globalRender(window.location.pathname, user, navigate));
|
||||
const [cookies, _, __] = useCookies(["user"]);
|
||||
|
||||
useEffect(() => {
|
||||
async function verifyUser() {
|
||||
const response = await verifyUserApi(cookies.token);
|
||||
useEffect(() => {
|
||||
async function verifyUser() {
|
||||
const response = await verifyUserApi(cookies.token);
|
||||
console.log("app", user);
|
||||
|
||||
if (response.status === 200) {
|
||||
setUser(response.data);
|
||||
@ -48,29 +49,31 @@ const App = () => {
|
||||
}
|
||||
}
|
||||
|
||||
verifyUser();
|
||||
}, [])
|
||||
verifyUser();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<UserData.Provider value={{ user, setUser }}>
|
||||
<answersData.Provider value={{ answersList, setAnswersList }}>
|
||||
<FormsData.Provider value={{ forms, setForms }}>
|
||||
<TypeAnswerData.Provider value={{ listTypeAnswer, setListTypeAnswer }}>
|
||||
<div className={classes.main}>
|
||||
<div className={classes.container}>
|
||||
<div className={classes.header}>
|
||||
<NavBar navigate={navigate} auth={user} setAuth={setUser}/>
|
||||
</div>
|
||||
<div className={classes.content}>
|
||||
<Outlet/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</TypeAnswerData.Provider>
|
||||
</FormsData.Provider>
|
||||
</answersData.Provider>
|
||||
</UserData.Provider>
|
||||
)
|
||||
}
|
||||
return (
|
||||
<UserData.Provider value={{ user, setUser }}>
|
||||
<answersData.Provider value={{ answersList, setAnswersList }}>
|
||||
<FormsData.Provider value={{ forms, setForms }}>
|
||||
<TypeAnswerData.Provider
|
||||
value={{ listTypeAnswer, setListTypeAnswer }}
|
||||
>
|
||||
<div className={classes.main}>
|
||||
<div className={classes.container}>
|
||||
<div className={classes.header}>
|
||||
<NavBar navigate={navigate} auth={user} setAuth={setUser} />
|
||||
</div>
|
||||
<div className={classes.content}>
|
||||
<Outlet />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</TypeAnswerData.Provider>
|
||||
</FormsData.Provider>
|
||||
</answersData.Provider>
|
||||
</UserData.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||
export default App;
|
||||
|
@ -26,7 +26,7 @@ const NavBar = ({navigate, auth, setAuth}) => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export default NavBar;
|
||||
export default NavBar;
|
||||
|
@ -1,14 +1,18 @@
|
||||
const constructorAnswerValidate = (state, messageReject = "Ошибка", messageResolve = undefined) => {
|
||||
return state ?
|
||||
{
|
||||
status: true,
|
||||
message: messageResolve
|
||||
} :
|
||||
{
|
||||
status: false,
|
||||
message: messageReject
|
||||
}
|
||||
}
|
||||
const constructorAnswerValidate = (
|
||||
state,
|
||||
messageReject = "Ошибка",
|
||||
messageResolve = undefined
|
||||
) => {
|
||||
return state
|
||||
? {
|
||||
status: true,
|
||||
message: messageResolve,
|
||||
}
|
||||
: {
|
||||
status: false,
|
||||
message: messageReject,
|
||||
};
|
||||
};
|
||||
|
||||
const totalRegisterValidate = (data) => {
|
||||
const listValidation = [
|
||||
@ -22,12 +26,12 @@ const totalRegisterValidate = (data) => {
|
||||
// constructorAnswerValidate(data.password >= 8, "Пароль должен иметь более 8 символов.")
|
||||
]
|
||||
|
||||
for (let value of listValidation) {
|
||||
if (!value.status) {
|
||||
return value
|
||||
}
|
||||
for (let value of listValidation) {
|
||||
if (!value.status) {
|
||||
return value;
|
||||
}
|
||||
return { status: true }
|
||||
}
|
||||
}
|
||||
return { status: true };
|
||||
};
|
||||
|
||||
export { totalRegisterValidate, constructorAnswerValidate }
|
||||
export { totalRegisterValidate, constructorAnswerValidate };
|
||||
|
@ -5,19 +5,23 @@ import classes from "../assets/styles/enterAccount.module.scss";
|
||||
import MyInput from "../components/MyInput.jsx";
|
||||
import MyButton from "../components/MyButton.jsx";
|
||||
import { UserData } from "../context";
|
||||
import { logIn, completeRegistration, verifyUserApi } from "../hooks/api/enterAccountApi.js";
|
||||
import {
|
||||
logIn,
|
||||
completeRegistration,
|
||||
verifyUserApi,
|
||||
} from "../hooks/api/enterAccountApi.js";
|
||||
|
||||
const EnterAccount = () => {
|
||||
const [enter, setEnter] = useState("login");
|
||||
const navigate = useNavigate();
|
||||
const [enter, setEnter] = useState("login");
|
||||
const navigate = useNavigate();
|
||||
|
||||
const [email, setEmail] = useState("");
|
||||
const [phone, setPhone] = useState("");
|
||||
const [login, setLogin] = useState("");
|
||||
const [surname, setSurname] = useState("");
|
||||
const [patronymic, setPatronymic] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [repiedPassword, setRepiedPassword] = useState("");
|
||||
const [email, setEmail] = useState("");
|
||||
const [phone, setPhone] = useState("");
|
||||
const [login, setLogin] = useState("");
|
||||
const [surname, setSurname] = useState("");
|
||||
const [patronymic, setPatronymic] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [repiedPassword, setRepiedPassword] = useState("");
|
||||
|
||||
const {user, setUser} = useContext(UserData);
|
||||
const [cookies, setCookie, removeCookie] = useCookies(["user"]);
|
||||
@ -25,27 +29,27 @@ const EnterAccount = () => {
|
||||
const [loginError, setLoginError] = useState(false);
|
||||
const [regsterError, setRegsterError] = useState(false);
|
||||
|
||||
function cleanState() {
|
||||
setEmail("");
|
||||
setPhone("");
|
||||
setLogin("");
|
||||
setSurname("");
|
||||
setPatronymic("");
|
||||
setPassword("");
|
||||
setRepiedPassword("");
|
||||
};
|
||||
function cleanState() {
|
||||
setEmail("");
|
||||
setPhone("");
|
||||
setLogin("");
|
||||
setSurname("");
|
||||
setPatronymic("");
|
||||
setPassword("");
|
||||
setRepiedPassword("");
|
||||
}
|
||||
|
||||
function selectTag(tag) {
|
||||
setEnter(tag);
|
||||
cleanState();
|
||||
};
|
||||
function selectTag(tag) {
|
||||
setEnter(tag);
|
||||
cleanState();
|
||||
}
|
||||
|
||||
async function createUser() {
|
||||
const response = await completeRegistration({
|
||||
login: login,
|
||||
password: password,
|
||||
repiedPassword: repiedPassword
|
||||
});
|
||||
async function createUser() {
|
||||
const response = await completeRegistration({
|
||||
login: login,
|
||||
password: password,
|
||||
repiedPassword: repiedPassword,
|
||||
});
|
||||
|
||||
if (response.status === 200) {
|
||||
const responseMe = await verifyUserApi(response.data.token)
|
||||
@ -59,8 +63,8 @@ const EnterAccount = () => {
|
||||
}
|
||||
};
|
||||
|
||||
async function logInToAccount() {
|
||||
const response = await logIn(login, password)
|
||||
async function logInToAccount() {
|
||||
const response = await logIn(login, password);
|
||||
|
||||
if (response.status === 200) {
|
||||
setCookie("token", response.data.token);
|
||||
@ -133,14 +137,19 @@ const EnterAccount = () => {
|
||||
<MyInput type={'password'} placeholder={"Повторите пароль"} otherMainStyle={{width: "100%", height: "15%"}} otherInputStyle={{width: "100%"}} value={repiedPassword} change={setRepiedPassword}/>
|
||||
</div> */}
|
||||
<div className={classes.content__wrapper__register__footer}>
|
||||
<MyButton text={"Создать"} otherStyle={{height: "100%", width: "20%"}} click={() => createUser()}/>
|
||||
<MyButton
|
||||
text={"Создать"}
|
||||
otherStyle={{ height: "100%", width: "20%" }}
|
||||
click={() => createUser()}
|
||||
/>
|
||||
</div>
|
||||
</div>}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
export default EnterAccount;
|
||||
export default EnterAccount;
|
||||
|
@ -1,40 +1,54 @@
|
||||
import React, { useState } from "react";
|
||||
import { useNavigate, useLocation, useParams } from 'react-router-dom';
|
||||
import { useNavigate, useLocation, useParams } from "react-router-dom";
|
||||
import classes from "../assets/styles/home.module.scss";
|
||||
import MyButton from "../components/MyButton.jsx";
|
||||
import MyInput from "../components/MyInput.jsx";
|
||||
|
||||
const Home = () => {
|
||||
const [token, setToken] = useState("");
|
||||
const navigate = useNavigate();
|
||||
const [token, setToken] = useState("");
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
<div className={classes.main}>
|
||||
<div className={classes.wrapper}>
|
||||
<div className={classes.header}>
|
||||
<div className={classes.header__top}>Кажется вы попали на общую страницу.</div>
|
||||
<div className={classes.header__bottom}>Чтобы перейти к форме ввелите токен ниже или снова перейдите по ссылке.</div>
|
||||
</div>
|
||||
<div className={classes.content}>
|
||||
<div className={classes.content__title}>
|
||||
<div className={classes.content__title__wrapper}>
|
||||
<h3>Перейти к нужной форме</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classes.content__token}>
|
||||
<div className={classes.content__token__wrapper}>
|
||||
<MyInput placeholder={"Введите токен формы..."} otherMainStyle={{width: "100%"}} otherInputStyle={{width: "100%"}} value={token} change={(e) => setToken(e)}/>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classes.content__search}>
|
||||
<div className={classes.content__search__wrapper}>
|
||||
<MyButton text={"Найти форму"} click={() => navigate(`/forms/${token}`)}/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
return (
|
||||
<div className={classes.main}>
|
||||
<div className={classes.wrapper}>
|
||||
<div className={classes.header}>
|
||||
<div className={classes.header__top}>
|
||||
Кажется вы попали на общую страницу.
|
||||
</div>
|
||||
<div className={classes.header__bottom}>
|
||||
Чтобы перейти к форме введите токен ниже или снова перейдите по
|
||||
ссылке.
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
<div className={classes.content}>
|
||||
<div className={classes.content__title}>
|
||||
<div className={classes.content__title__wrapper}>
|
||||
<h3>Перейти к нужной форме</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classes.content__token}>
|
||||
<div className={classes.content__token__wrapper}>
|
||||
<MyInput
|
||||
placeholder={"Введите токен формы..."}
|
||||
otherMainStyle={{ width: "100%" }}
|
||||
otherInputStyle={{ width: "100%" }}
|
||||
value={token}
|
||||
change={(e) => setToken(e)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classes.content__search}>
|
||||
<div className={classes.content__search__wrapper}>
|
||||
<MyButton
|
||||
text={"Найти форму"}
|
||||
click={() => navigate(`/forms/${token}`)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Home;
|
||||
export default Home;
|
||||
|
Reference in New Issue
Block a user