fix routing
This commit is contained in:
parent
ac0104620c
commit
7520000f5b
@ -56,7 +56,7 @@ export default function App() {
|
||||
{routeslink.map((e, i) => (
|
||||
<Route key={i} path={e.path} element={<Main page={e.page} header={e.header} sidebar={e.sidebar} />} />
|
||||
))}
|
||||
<Route path="settings" element={<StartPage />} />
|
||||
<Route path="edit" element={<StartPage />} />
|
||||
<Route path="crop" element={<ImageCrop />} />
|
||||
<Route path="/" element={<Landing />} />
|
||||
<Route path="/signin" element={<SigninDialog />} />
|
||||
|
||||
@ -34,7 +34,7 @@ export default function QuizCard({
|
||||
|
||||
function handleEditClick() {
|
||||
setEditQuizId(quiz.id);
|
||||
navigate("/settings");
|
||||
navigate("/edit");
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@ -14,7 +14,7 @@ import {
|
||||
useMediaQuery,
|
||||
useTheme,
|
||||
} from "@mui/material";
|
||||
import { decrementCurrentStep, setQuizes } from "@root/quizes/actions";
|
||||
import { decrementCurrentStep, resetEditConfig, setQuizes } from "@root/quizes/actions";
|
||||
import { useCurrentQuiz } from "@root/quizes/hooks";
|
||||
import { useQuizStore } from "@root/quizes/store";
|
||||
import CustomAvatar from "@ui_kit/Header/Avatar";
|
||||
@ -25,8 +25,8 @@ import Stepper from "@ui_kit/Stepper";
|
||||
import SwitchStepPages from "@ui_kit/switchStepPages";
|
||||
import { isAxiosError } from "axios";
|
||||
import { enqueueSnackbar } from "notistack";
|
||||
import { useState } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Link, useNavigate } from "react-router-dom";
|
||||
import useSWR from "swr";
|
||||
import { SidebarMobile } from "./Sidebar/SidebarMobile";
|
||||
|
||||
@ -42,6 +42,8 @@ export default function StartPage() {
|
||||
},
|
||||
});
|
||||
const theme = useTheme();
|
||||
const navigate = useNavigate();
|
||||
const quizId = useQuizStore(state => state.editQuizId);
|
||||
const { quiz } = useCurrentQuiz();
|
||||
const currentStep = useQuizStore(state => state.currentStep);
|
||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||
@ -50,6 +52,12 @@ export default function StartPage() {
|
||||
|
||||
const quizConfig = quiz?.config;
|
||||
|
||||
useEffect(() => {
|
||||
if (quizId === null) navigate("/list");
|
||||
}, [navigate, quizId]);
|
||||
|
||||
useEffect(() => () => resetEditConfig(), []);
|
||||
|
||||
return (
|
||||
<>
|
||||
{/*хедер*/}
|
||||
|
||||
@ -14,6 +14,11 @@ export const setEditQuizId = (quizId: number | null) => setProducedState(state =
|
||||
state.editQuizId = quizId;
|
||||
});
|
||||
|
||||
export const resetEditConfig = () => setProducedState(state => {
|
||||
state.editQuizId = null;
|
||||
state.currentStep = 1;
|
||||
});
|
||||
|
||||
export const setQuizes = (quizes: RawQuiz[] | null) => setProducedState(state => {
|
||||
state.quizById = {};
|
||||
if (quizes === null) return;
|
||||
@ -103,7 +108,7 @@ export const createQuiz = async (navigate: NavigateFunction) => {
|
||||
|
||||
setQuiz(rawQuizToQuiz(quiz));
|
||||
setEditQuizId(quiz.id);
|
||||
navigate("/settings");
|
||||
navigate("/edit");
|
||||
} catch (error) {
|
||||
devlog("Error creating quiz", error);
|
||||
|
||||
@ -173,9 +178,9 @@ export const updateQuizWithFnOptimistic = async (
|
||||
setQuiz(currentUpdatedQuiz);
|
||||
try {
|
||||
const { updated: newId } = await quizApi.edit(quizToEditQuizRequest(currentUpdatedQuiz), controller.signal);
|
||||
// await new Promise((resolve, reject) => setTimeout(reject, 2000, new Error("Api rejected")));
|
||||
|
||||
setQuizField(quiz.id, "id", newId);
|
||||
setEditQuizId(newId);
|
||||
|
||||
controller = null;
|
||||
savedOriginalQuiz = null;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user