С возвращением!
-
Еще не с нами?
Зарегистрируйтесь!
@@ -36,4 +62,4 @@ const RegisterForm = () => {
);
}
-export default RegisterForm;
+export default LoginForm;
diff --git a/SurveyFrontend/src/components/MySurveyList/MySurveyList.tsx b/SurveyFrontend/src/components/MySurveyList/MySurveyList.tsx
index 678d30d..210996e 100644
--- a/SurveyFrontend/src/components/MySurveyList/MySurveyList.tsx
+++ b/SurveyFrontend/src/components/MySurveyList/MySurveyList.tsx
@@ -1,35 +1,58 @@
import styles from './MySurveysList.module.css'
import {useNavigate} from "react-router-dom";
+import {useEffect, useState} from "react";
+import {getMySurveys, ISurvey} from "../../api/SurveyApi.ts";
-interface MySurveyItem{
- id: string,
- title: string,
- description: string,
- date: string
+
+interface MySurveyItem extends ISurvey{
status: 'active' | 'completed'
}
export const MySurveyList = () => {
const navigate = useNavigate();
+ const [surveys, setSurveys] = useState([]);
- const surveys: MySurveyItem[] = [
- {
- id: '1',
- title: 'Опрос 1',
- description: 'Описание опроса 1',
- date: '27-04-2025',
- status: 'active',
- },
- {
- id: '2',
- title: 'Опрос 2',
- description: 'Описание опроса 2',
- date: '01-01-2025',
- status: 'completed',
- }
- ]
+ useEffect(() => {
+ const fetchSurvey = async () => {
+ try {
+ const mySurveys = await getMySurveys();
+ const surveysWithStatus: MySurveyItem[] = mySurveys.map((survey: ISurvey) => ({
+ ...survey,
+ status: 'active',
+ }));
+ setSurveys(surveysWithStatus);
+ } catch (error) {
+ console.error('Ошибка при получении списка опросов:', error);
- const handleSurveyClick = (id: string) => {
+ if (error instanceof Error && error.message.includes("401")) {
+ // Если ошибка 401, перенаправляем на страницу входа
+ navigate('/login');
+ } else {
+ alert("Ошибка при загрузке опросов: " + (error instanceof Error && error.message));
+ }
+ }
+ };
+ fetchSurvey();
+ }, [navigate]);
+
+ // const surveys: MySurveyItem[] = [
+ // {
+ // id: '1',
+ // title: 'Опрос 1',
+ // description: 'Описание опроса 1',
+ // createdBy: '27-04-2025',
+ // status: 'active',
+ // },
+ // {
+ // id: '2',
+ // title: 'Опрос 2',
+ // description: 'Описание опроса 2',
+ // createdBy: '01-01-2025',
+ // status: 'completed',
+ // }
+ // ]
+
+ const handleSurveyClick = (id: number) => {
navigate(`/survey/${id}/questions`)
}
@@ -46,7 +69,7 @@ export const MySurveyList = () => {
{survey.title}
{survey.description}
- {
const [focused, setFocused] = useState({
- name: false,
- surname: false,
+ firstName: false,
+ lastName: false,
email: false,
password: false
});
+
+ const nameRef = useRef
(null);
+ const surnameRef = useRef(null);
+ const emailRef = useRef(null);
+ const passwordRef = useRef(null);
+
+ const navigate = useNavigate();
+
+ const handleSubmit = async (event: React.FormEvent) => {
+ event.preventDefault();
+ const firstName = nameRef.current?.value || '';
+ const lastName = surnameRef.current?.value || '';
+ const email = emailRef.current?.value || '';
+ const password = passwordRef.current?.value || '';
+ const username = firstName + lastName || '';
+
+ try{
+ const responseData = await registerUser({username, firstName, lastName, email, password});
+ console.log(responseData); //проверка вывода данных
+ if (responseData && !responseData.error) {
+ console.log('Регистрация успешна')
+ navigate('/my-surveys');
+ }
+ else {
+ console.error(`Ошибка регистрации: ${responseData}`);
+ console.log('Регистраиця не удалась');
+ }
+ }
+ catch (err) {
+ console.error(`Ошибка при отправке запроса ${err}`);
+ }
+ }
+
return (
Регистрация
-
Уже с нами?
Войдите!
diff --git a/SurveyFrontend/src/pages/AuthForm/AuthForm.tsx b/SurveyFrontend/src/pages/AuthForm/AuthForm.tsx
index 9f4e5d4..7d52d08 100644
--- a/SurveyFrontend/src/pages/AuthForm/AuthForm.tsx
+++ b/SurveyFrontend/src/pages/AuthForm/AuthForm.tsx
@@ -5,13 +5,30 @@ import {useLocation} from "react-router-dom";
const AuthForm = () => {
+ // const location = useLocation();
+ // const isLogin = location.pathname === '/login';
+ //
+ // return (
+ //
+ // {isLogin ? : }
+ //
+ // );
+
const location = useLocation();
- const isLogin = location.pathname === '/login';
+ const isLoginPage = location.pathname === '/login';
+ const isRegisterPage = location.pathname === '/register';
+
+ let content;
+ if (isLoginPage) {
+ content =
;
+ } else if (isRegisterPage) {
+ content =
;
+ } else {
+ content =
; // По умолчанию показываем LoginForm
+ }
return (
-
- {isLogin ? : }
-
+
{content}
);
}