diff --git a/public/index.html b/public/index.html index b9522be0..42fbc250 100755 --- a/public/index.html +++ b/public/index.html @@ -1,12 +1,16 @@ + + - - - - Pena Quiz - - + + Повышение конкурентоспособности " + /> - - - + + + + + - + - - - - - - - - - - - - - - -
- + // + var _tmr = window._tmr || (window._tmr = []); + _tmr.push({ + id: "3513005", + type: "pageView", + start: new Date().getTime(), + }); + (function (d, w, id) { + if (d.getElementById(id)) return; + var ts = d.createElement("script"); + ts.type = "text/javascript"; + ts.async = true; + ts.id = id; + ts.src = "https://top-fwz1.mail.ru/js/code.js"; + var f = function () { + var s = d.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(ts, s); + }; + if (w.opera == "[object Opera]") { + d.addEventListener("DOMContentLoaded", f, false); + } else { + f(); + } + })(document, window, "tmr-code"); + // + } + if (domain === "squiz.pena.digital") { + ym(96979625, "init", { + clickmap: true, + trackLinks: true, + accurateTrackBounce: true, + webvisor: true, + }); + } + if (domain === "penaquiz.online" || domain === "penaquiz.ru") { + ym(97241101, "init", { + clickmap: true, + trackLinks: true, + accurateTrackBounce: true, + webvisor: true, + }); + } + + + + + + +
+ diff --git a/src/App.tsx b/src/App.tsx index 5dd12884..bf1eaa38 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -43,6 +43,7 @@ import { useUserAccountFetcher } from "@utils/hooks/useUserAccountFetcher"; const MyQuizzesFull = lazy(() => import("./pages/createQuize/MyQuizzesFull")); +const QuizGallery = lazy(() => import("./pages/createQuize/QuizGallery")); const ViewPage = lazy(() => import("./pages/ViewPublicationPage")); const Analytics = lazy(() => import("./pages/Analytics/Analytics")); const EditPage = lazy(() => import("./pages/startPage/EditPage")); @@ -201,6 +202,10 @@ export default function App() { /> } /> + } />} + /> } />} diff --git a/src/api/quiz.ts b/src/api/quiz.ts index e6d05a3d..7d1f4d3d 100644 --- a/src/api/quiz.ts +++ b/src/api/quiz.ts @@ -164,6 +164,28 @@ export const addQuizImages = async ( } }; +export const copyQuizTemplate = async ( + qid: string, +): Promise<[number | null, string?]> => { + try { + const { id } = await makeRequest<{ Qid: string }, { id: number }>({ + method: "POST", + url: `${API_URL}/quiz/template`, + body: { Qid: qid }, + }); + + if (!id) { + return [null, `Не удалось скопировать шаблон квиза.`]; + } + + return [id]; + } catch (nativeError) { + const [error] = parseAxiosError(nativeError); + + return [null, `Не удалось скопировать шаблон квиза. ${error}`]; + } +}; + export const quizApi = { create: createQuiz, getList: getQuizList, @@ -172,6 +194,7 @@ export const quizApi = { copy: copyQuiz, delete: deleteQuiz, addImages: addQuizImages, + copyTemplate: copyQuizTemplate, }; const defaultCreateQuizBody: CreateQuizRequest = { diff --git a/src/assets/quiz-template-1.png b/src/assets/quiz-template-1.png deleted file mode 100755 index 0703b74a..00000000 Binary files a/src/assets/quiz-template-1.png and /dev/null differ diff --git a/src/assets/quiz-template-2.png b/src/assets/quiz-template-2.png deleted file mode 100755 index f92c8c6b..00000000 Binary files a/src/assets/quiz-template-2.png and /dev/null differ diff --git a/src/assets/quiz-template-3.png b/src/assets/quiz-template-3.png deleted file mode 100755 index 8bb8e8c3..00000000 Binary files a/src/assets/quiz-template-3.png and /dev/null differ diff --git a/src/assets/quiz-template-4.png b/src/assets/quiz-template-4.png deleted file mode 100755 index 11ecf89f..00000000 Binary files a/src/assets/quiz-template-4.png and /dev/null differ diff --git a/src/assets/quiz-template-5.png b/src/assets/quiz-template-5.png deleted file mode 100755 index 4cbde4e2..00000000 Binary files a/src/assets/quiz-template-5.png and /dev/null differ diff --git a/src/assets/quiz-template-6.png b/src/assets/quiz-template-6.png deleted file mode 100755 index 0308e86f..00000000 Binary files a/src/assets/quiz-template-6.png and /dev/null differ diff --git a/src/assets/quiz-templates/auto/auto-1.jpg b/src/assets/quiz-templates/auto/auto-1.jpg new file mode 100644 index 00000000..4f3d9fac Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-1.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-10.jpg b/src/assets/quiz-templates/auto/auto-10.jpg new file mode 100644 index 00000000..474c8c1a Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-10.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-2.jpg b/src/assets/quiz-templates/auto/auto-2.jpg new file mode 100644 index 00000000..3bd51d36 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-2.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-3.jpg b/src/assets/quiz-templates/auto/auto-3.jpg new file mode 100644 index 00000000..320f7d0b Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-3.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-4.jpg b/src/assets/quiz-templates/auto/auto-4.jpg new file mode 100644 index 00000000..1a3c4983 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-4.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-5.jpg b/src/assets/quiz-templates/auto/auto-5.jpg new file mode 100644 index 00000000..e0a5b948 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-5.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-6.jpg b/src/assets/quiz-templates/auto/auto-6.jpg new file mode 100644 index 00000000..94d71b30 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-6.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-7.jpg b/src/assets/quiz-templates/auto/auto-7.jpg new file mode 100644 index 00000000..286e7a61 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-7.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-8.jpg b/src/assets/quiz-templates/auto/auto-8.jpg new file mode 100644 index 00000000..b1887c9f Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-8.jpg differ diff --git a/src/assets/quiz-templates/auto/auto-9.jpg b/src/assets/quiz-templates/auto/auto-9.jpg new file mode 100644 index 00000000..4521fcc4 Binary files /dev/null and b/src/assets/quiz-templates/auto/auto-9.jpg differ diff --git a/src/assets/quiz-templates/education/education-1.jpg b/src/assets/quiz-templates/education/education-1.jpg new file mode 100644 index 00000000..a4eddf4d Binary files /dev/null and b/src/assets/quiz-templates/education/education-1.jpg differ diff --git a/src/assets/quiz-templates/education/education-10.jpg b/src/assets/quiz-templates/education/education-10.jpg new file mode 100644 index 00000000..708c3f03 Binary files /dev/null and b/src/assets/quiz-templates/education/education-10.jpg differ diff --git a/src/assets/quiz-templates/education/education-2.jpg b/src/assets/quiz-templates/education/education-2.jpg new file mode 100644 index 00000000..9de16bf0 Binary files /dev/null and b/src/assets/quiz-templates/education/education-2.jpg differ diff --git a/src/assets/quiz-templates/education/education-3.jpg b/src/assets/quiz-templates/education/education-3.jpg new file mode 100644 index 00000000..30ffb39f Binary files /dev/null and b/src/assets/quiz-templates/education/education-3.jpg differ diff --git a/src/assets/quiz-templates/education/education-4.jpg b/src/assets/quiz-templates/education/education-4.jpg new file mode 100644 index 00000000..fc47aa35 Binary files /dev/null and b/src/assets/quiz-templates/education/education-4.jpg differ diff --git a/src/assets/quiz-templates/education/education-5.jpg b/src/assets/quiz-templates/education/education-5.jpg new file mode 100644 index 00000000..5b9dbbb1 Binary files /dev/null and b/src/assets/quiz-templates/education/education-5.jpg differ diff --git a/src/assets/quiz-templates/education/education-6.jpg b/src/assets/quiz-templates/education/education-6.jpg new file mode 100644 index 00000000..2848f557 Binary files /dev/null and b/src/assets/quiz-templates/education/education-6.jpg differ diff --git a/src/assets/quiz-templates/education/education-7.jpg b/src/assets/quiz-templates/education/education-7.jpg new file mode 100644 index 00000000..7a291aab Binary files /dev/null and b/src/assets/quiz-templates/education/education-7.jpg differ diff --git a/src/assets/quiz-templates/education/education-8.jpg b/src/assets/quiz-templates/education/education-8.jpg new file mode 100644 index 00000000..562122fc Binary files /dev/null and b/src/assets/quiz-templates/education/education-8.jpg differ diff --git a/src/assets/quiz-templates/education/education-9.jpg b/src/assets/quiz-templates/education/education-9.jpg new file mode 100644 index 00000000..33852229 Binary files /dev/null and b/src/assets/quiz-templates/education/education-9.jpg differ diff --git a/src/assets/quiz-templates/health/health-1.jpg b/src/assets/quiz-templates/health/health-1.jpg new file mode 100644 index 00000000..8e3c5adb Binary files /dev/null and b/src/assets/quiz-templates/health/health-1.jpg differ diff --git a/src/assets/quiz-templates/health/health-10.jpg b/src/assets/quiz-templates/health/health-10.jpg new file mode 100644 index 00000000..ff8f4b4e Binary files /dev/null and b/src/assets/quiz-templates/health/health-10.jpg differ diff --git a/src/assets/quiz-templates/health/health-11.jpg b/src/assets/quiz-templates/health/health-11.jpg new file mode 100644 index 00000000..32ec9c3e Binary files /dev/null and b/src/assets/quiz-templates/health/health-11.jpg differ diff --git a/src/assets/quiz-templates/health/health-12.jpg b/src/assets/quiz-templates/health/health-12.jpg new file mode 100644 index 00000000..3107437f Binary files /dev/null and b/src/assets/quiz-templates/health/health-12.jpg differ diff --git a/src/assets/quiz-templates/health/health-13.jpg b/src/assets/quiz-templates/health/health-13.jpg new file mode 100644 index 00000000..ed2be7fb Binary files /dev/null and b/src/assets/quiz-templates/health/health-13.jpg differ diff --git a/src/assets/quiz-templates/health/health-14.jpg b/src/assets/quiz-templates/health/health-14.jpg new file mode 100644 index 00000000..5298f25c Binary files /dev/null and b/src/assets/quiz-templates/health/health-14.jpg differ diff --git a/src/assets/quiz-templates/health/health-15.jpg b/src/assets/quiz-templates/health/health-15.jpg new file mode 100644 index 00000000..d2ca84c6 Binary files /dev/null and b/src/assets/quiz-templates/health/health-15.jpg differ diff --git a/src/assets/quiz-templates/health/health-16.jpg b/src/assets/quiz-templates/health/health-16.jpg new file mode 100644 index 00000000..7f8163c6 Binary files /dev/null and b/src/assets/quiz-templates/health/health-16.jpg differ diff --git a/src/assets/quiz-templates/health/health-17.jpg b/src/assets/quiz-templates/health/health-17.jpg new file mode 100644 index 00000000..a9621787 Binary files /dev/null and b/src/assets/quiz-templates/health/health-17.jpg differ diff --git a/src/assets/quiz-templates/health/health-18.jpg b/src/assets/quiz-templates/health/health-18.jpg new file mode 100644 index 00000000..4225df96 Binary files /dev/null and b/src/assets/quiz-templates/health/health-18.jpg differ diff --git a/src/assets/quiz-templates/health/health-19.jpg b/src/assets/quiz-templates/health/health-19.jpg new file mode 100644 index 00000000..e2707907 Binary files /dev/null and b/src/assets/quiz-templates/health/health-19.jpg differ diff --git a/src/assets/quiz-templates/health/health-2.jpg b/src/assets/quiz-templates/health/health-2.jpg new file mode 100644 index 00000000..1ee282a7 Binary files /dev/null and b/src/assets/quiz-templates/health/health-2.jpg differ diff --git a/src/assets/quiz-templates/health/health-20.jpg b/src/assets/quiz-templates/health/health-20.jpg new file mode 100644 index 00000000..c99d10cd Binary files /dev/null and b/src/assets/quiz-templates/health/health-20.jpg differ diff --git a/src/assets/quiz-templates/health/health-3.jpg b/src/assets/quiz-templates/health/health-3.jpg new file mode 100644 index 00000000..22c0ec91 Binary files /dev/null and b/src/assets/quiz-templates/health/health-3.jpg differ diff --git a/src/assets/quiz-templates/health/health-4.jpg b/src/assets/quiz-templates/health/health-4.jpg new file mode 100644 index 00000000..204d518f Binary files /dev/null and b/src/assets/quiz-templates/health/health-4.jpg differ diff --git a/src/assets/quiz-templates/health/health-5.jpg b/src/assets/quiz-templates/health/health-5.jpg new file mode 100644 index 00000000..6fe60567 Binary files /dev/null and b/src/assets/quiz-templates/health/health-5.jpg differ diff --git a/src/assets/quiz-templates/health/health-6.jpg b/src/assets/quiz-templates/health/health-6.jpg new file mode 100644 index 00000000..6b742ba6 Binary files /dev/null and b/src/assets/quiz-templates/health/health-6.jpg differ diff --git a/src/assets/quiz-templates/health/health-7.jpg b/src/assets/quiz-templates/health/health-7.jpg new file mode 100644 index 00000000..25a40b9a Binary files /dev/null and b/src/assets/quiz-templates/health/health-7.jpg differ diff --git a/src/assets/quiz-templates/health/health-8.jpg b/src/assets/quiz-templates/health/health-8.jpg new file mode 100644 index 00000000..f777831f Binary files /dev/null and b/src/assets/quiz-templates/health/health-8.jpg differ diff --git a/src/assets/quiz-templates/health/health-9.jpg b/src/assets/quiz-templates/health/health-9.jpg new file mode 100644 index 00000000..fdb1d6b0 Binary files /dev/null and b/src/assets/quiz-templates/health/health-9.jpg differ diff --git a/src/assets/quiz-templates/production/production-1.jpg b/src/assets/quiz-templates/production/production-1.jpg new file mode 100644 index 00000000..552e5424 Binary files /dev/null and b/src/assets/quiz-templates/production/production-1.jpg differ diff --git a/src/assets/quiz-templates/production/production-10.jpg b/src/assets/quiz-templates/production/production-10.jpg new file mode 100644 index 00000000..da3b0e6d Binary files /dev/null and b/src/assets/quiz-templates/production/production-10.jpg differ diff --git a/src/assets/quiz-templates/production/production-2.jpg b/src/assets/quiz-templates/production/production-2.jpg new file mode 100644 index 00000000..ff72fd2d Binary files /dev/null and b/src/assets/quiz-templates/production/production-2.jpg differ diff --git a/src/assets/quiz-templates/production/production-3.jpg b/src/assets/quiz-templates/production/production-3.jpg new file mode 100644 index 00000000..48861a81 Binary files /dev/null and b/src/assets/quiz-templates/production/production-3.jpg differ diff --git a/src/assets/quiz-templates/production/production-4.jpg b/src/assets/quiz-templates/production/production-4.jpg new file mode 100644 index 00000000..7bc8fb01 Binary files /dev/null and b/src/assets/quiz-templates/production/production-4.jpg differ diff --git a/src/assets/quiz-templates/production/production-5.jpg b/src/assets/quiz-templates/production/production-5.jpg new file mode 100644 index 00000000..587d05a3 Binary files /dev/null and b/src/assets/quiz-templates/production/production-5.jpg differ diff --git a/src/assets/quiz-templates/production/production-6.jpg b/src/assets/quiz-templates/production/production-6.jpg new file mode 100644 index 00000000..e0316fdb Binary files /dev/null and b/src/assets/quiz-templates/production/production-6.jpg differ diff --git a/src/assets/quiz-templates/production/production-7.jpg b/src/assets/quiz-templates/production/production-7.jpg new file mode 100644 index 00000000..4381c548 Binary files /dev/null and b/src/assets/quiz-templates/production/production-7.jpg differ diff --git a/src/assets/quiz-templates/production/production-8.jpg b/src/assets/quiz-templates/production/production-8.jpg new file mode 100644 index 00000000..fd9095f6 Binary files /dev/null and b/src/assets/quiz-templates/production/production-8.jpg differ diff --git a/src/assets/quiz-templates/production/production-9.jpg b/src/assets/quiz-templates/production/production-9.jpg new file mode 100644 index 00000000..9c7599f3 Binary files /dev/null and b/src/assets/quiz-templates/production/production-9.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-1.jpg b/src/assets/quiz-templates/real-estate/real-estate-1.jpg new file mode 100644 index 00000000..bb2bee4a Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-1.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-10.jpg b/src/assets/quiz-templates/real-estate/real-estate-10.jpg new file mode 100644 index 00000000..d3056e71 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-10.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-2.jpg b/src/assets/quiz-templates/real-estate/real-estate-2.jpg new file mode 100644 index 00000000..2e888341 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-2.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-3.jpg b/src/assets/quiz-templates/real-estate/real-estate-3.jpg new file mode 100644 index 00000000..4138b906 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-3.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-4.jpg b/src/assets/quiz-templates/real-estate/real-estate-4.jpg new file mode 100644 index 00000000..a127edae Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-4.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-5.jpg b/src/assets/quiz-templates/real-estate/real-estate-5.jpg new file mode 100644 index 00000000..cc166feb Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-5.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-6.jpg b/src/assets/quiz-templates/real-estate/real-estate-6.jpg new file mode 100644 index 00000000..37956278 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-6.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-7.jpg b/src/assets/quiz-templates/real-estate/real-estate-7.jpg new file mode 100644 index 00000000..2d2b5f9b Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-7.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-8.jpg b/src/assets/quiz-templates/real-estate/real-estate-8.jpg new file mode 100644 index 00000000..dc04f3a8 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-8.jpg differ diff --git a/src/assets/quiz-templates/real-estate/real-estate-9.jpg b/src/assets/quiz-templates/real-estate/real-estate-9.jpg new file mode 100644 index 00000000..52166193 Binary files /dev/null and b/src/assets/quiz-templates/real-estate/real-estate-9.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-1.jpg b/src/assets/quiz-templates/repair/repair-1.jpg new file mode 100644 index 00000000..955aaa4c Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-1.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-10.jpg b/src/assets/quiz-templates/repair/repair-10.jpg new file mode 100644 index 00000000..d5fb0a01 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-10.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-2.jpg b/src/assets/quiz-templates/repair/repair-2.jpg new file mode 100644 index 00000000..2dcc183c Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-2.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-3.jpg b/src/assets/quiz-templates/repair/repair-3.jpg new file mode 100644 index 00000000..4d458251 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-3.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-4.jpg b/src/assets/quiz-templates/repair/repair-4.jpg new file mode 100644 index 00000000..1559a542 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-4.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-5.jpg b/src/assets/quiz-templates/repair/repair-5.jpg new file mode 100644 index 00000000..5a27a6c4 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-5.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-6.jpg b/src/assets/quiz-templates/repair/repair-6.jpg new file mode 100644 index 00000000..5e44c5b9 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-6.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-7.jpg b/src/assets/quiz-templates/repair/repair-7.jpg new file mode 100644 index 00000000..f58f34c0 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-7.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-8.jpg b/src/assets/quiz-templates/repair/repair-8.jpg new file mode 100644 index 00000000..7a07141e Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-8.jpg differ diff --git a/src/assets/quiz-templates/repair/repair-9.jpg b/src/assets/quiz-templates/repair/repair-9.jpg new file mode 100644 index 00000000..a0a44e86 Binary files /dev/null and b/src/assets/quiz-templates/repair/repair-9.jpg differ diff --git a/src/assets/quiz-templates/research/research-1.jpg b/src/assets/quiz-templates/research/research-1.jpg new file mode 100644 index 00000000..c2880274 Binary files /dev/null and b/src/assets/quiz-templates/research/research-1.jpg differ diff --git a/src/assets/quiz-templates/research/research-10.jpg b/src/assets/quiz-templates/research/research-10.jpg new file mode 100644 index 00000000..302be762 Binary files /dev/null and b/src/assets/quiz-templates/research/research-10.jpg differ diff --git a/src/assets/quiz-templates/research/research-2.jpg b/src/assets/quiz-templates/research/research-2.jpg new file mode 100644 index 00000000..db853cd9 Binary files /dev/null and b/src/assets/quiz-templates/research/research-2.jpg differ diff --git a/src/assets/quiz-templates/research/research-3.jpg b/src/assets/quiz-templates/research/research-3.jpg new file mode 100644 index 00000000..a9a7cf02 Binary files /dev/null and b/src/assets/quiz-templates/research/research-3.jpg differ diff --git a/src/assets/quiz-templates/research/research-4.jpg b/src/assets/quiz-templates/research/research-4.jpg new file mode 100644 index 00000000..a2060d11 Binary files /dev/null and b/src/assets/quiz-templates/research/research-4.jpg differ diff --git a/src/assets/quiz-templates/research/research-5.jpg b/src/assets/quiz-templates/research/research-5.jpg new file mode 100644 index 00000000..84cb8e6c Binary files /dev/null and b/src/assets/quiz-templates/research/research-5.jpg differ diff --git a/src/assets/quiz-templates/research/research-6.jpg b/src/assets/quiz-templates/research/research-6.jpg new file mode 100644 index 00000000..3a3c4894 Binary files /dev/null and b/src/assets/quiz-templates/research/research-6.jpg differ diff --git a/src/assets/quiz-templates/research/research-7.jpg b/src/assets/quiz-templates/research/research-7.jpg new file mode 100644 index 00000000..02ec0b83 Binary files /dev/null and b/src/assets/quiz-templates/research/research-7.jpg differ diff --git a/src/assets/quiz-templates/research/research-8.jpg b/src/assets/quiz-templates/research/research-8.jpg new file mode 100644 index 00000000..06cf702c Binary files /dev/null and b/src/assets/quiz-templates/research/research-8.jpg differ diff --git a/src/assets/quiz-templates/research/research-9.jpg b/src/assets/quiz-templates/research/research-9.jpg new file mode 100644 index 00000000..884cb602 Binary files /dev/null and b/src/assets/quiz-templates/research/research-9.jpg differ diff --git a/src/assets/quiz-templates/services/service-1.jpg b/src/assets/quiz-templates/services/service-1.jpg new file mode 100644 index 00000000..51a36fb4 Binary files /dev/null and b/src/assets/quiz-templates/services/service-1.jpg differ diff --git a/src/assets/quiz-templates/services/service-10.jpg b/src/assets/quiz-templates/services/service-10.jpg new file mode 100644 index 00000000..a2303dff Binary files /dev/null and b/src/assets/quiz-templates/services/service-10.jpg differ diff --git a/src/assets/quiz-templates/services/service-11.jpg b/src/assets/quiz-templates/services/service-11.jpg new file mode 100644 index 00000000..15111b28 Binary files /dev/null and b/src/assets/quiz-templates/services/service-11.jpg differ diff --git a/src/assets/quiz-templates/services/service-2.jpg b/src/assets/quiz-templates/services/service-2.jpg new file mode 100644 index 00000000..08140977 Binary files /dev/null and b/src/assets/quiz-templates/services/service-2.jpg differ diff --git a/src/assets/quiz-templates/services/service-3.jpg b/src/assets/quiz-templates/services/service-3.jpg new file mode 100644 index 00000000..96b87209 Binary files /dev/null and b/src/assets/quiz-templates/services/service-3.jpg differ diff --git a/src/assets/quiz-templates/services/service-4.jpg b/src/assets/quiz-templates/services/service-4.jpg new file mode 100644 index 00000000..a04654e3 Binary files /dev/null and b/src/assets/quiz-templates/services/service-4.jpg differ diff --git a/src/assets/quiz-templates/services/service-5.jpg b/src/assets/quiz-templates/services/service-5.jpg new file mode 100644 index 00000000..8879f78e Binary files /dev/null and b/src/assets/quiz-templates/services/service-5.jpg differ diff --git a/src/assets/quiz-templates/services/service-6.jpg b/src/assets/quiz-templates/services/service-6.jpg new file mode 100644 index 00000000..aabcbbe4 Binary files /dev/null and b/src/assets/quiz-templates/services/service-6.jpg differ diff --git a/src/assets/quiz-templates/services/service-7.jpg b/src/assets/quiz-templates/services/service-7.jpg new file mode 100644 index 00000000..2abf2b63 Binary files /dev/null and b/src/assets/quiz-templates/services/service-7.jpg differ diff --git a/src/assets/quiz-templates/services/service-8.jpg b/src/assets/quiz-templates/services/service-8.jpg new file mode 100644 index 00000000..20d3bb74 Binary files /dev/null and b/src/assets/quiz-templates/services/service-8.jpg differ diff --git a/src/assets/quiz-templates/services/service-9.jpg b/src/assets/quiz-templates/services/service-9.jpg new file mode 100644 index 00000000..26556403 Binary files /dev/null and b/src/assets/quiz-templates/services/service-9.jpg differ diff --git a/src/assets/quiz-templates/template.svg b/src/assets/quiz-templates/template.svg new file mode 100644 index 00000000..5ab271a0 --- /dev/null +++ b/src/assets/quiz-templates/template.svg @@ -0,0 +1,15 @@ + + + diff --git a/src/assets/quiz-templates/tourism/tourism-1.jpg b/src/assets/quiz-templates/tourism/tourism-1.jpg new file mode 100644 index 00000000..f4c788be Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-1.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-10.jpg b/src/assets/quiz-templates/tourism/tourism-10.jpg new file mode 100644 index 00000000..c11ab435 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-10.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-2.jpg b/src/assets/quiz-templates/tourism/tourism-2.jpg new file mode 100644 index 00000000..c6628bc7 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-2.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-3.jpg b/src/assets/quiz-templates/tourism/tourism-3.jpg new file mode 100644 index 00000000..895d366c Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-3.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-4.jpg b/src/assets/quiz-templates/tourism/tourism-4.jpg new file mode 100644 index 00000000..863b593f Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-4.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-5.jpg b/src/assets/quiz-templates/tourism/tourism-5.jpg new file mode 100644 index 00000000..86913e09 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-5.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-6.jpg b/src/assets/quiz-templates/tourism/tourism-6.jpg new file mode 100644 index 00000000..40912313 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-6.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-7.jpg b/src/assets/quiz-templates/tourism/tourism-7.jpg new file mode 100644 index 00000000..25efa443 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-7.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-8.jpg b/src/assets/quiz-templates/tourism/tourism-8.jpg new file mode 100644 index 00000000..a76a4437 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-8.jpg differ diff --git a/src/assets/quiz-templates/tourism/tourism-9.jpg b/src/assets/quiz-templates/tourism/tourism-9.jpg new file mode 100644 index 00000000..7db92d83 Binary files /dev/null and b/src/assets/quiz-templates/tourism/tourism-9.jpg differ diff --git a/src/pages/createQuize/FirstQuiz.tsx b/src/pages/createQuize/FirstQuiz.tsx index afa9ee46..8937dffd 100755 --- a/src/pages/createQuize/FirstQuiz.tsx +++ b/src/pages/createQuize/FirstQuiz.tsx @@ -1,45 +1,66 @@ -import { Button, Typography } from "@mui/material"; +import { Box, Button, Typography, useTheme } from "@mui/material"; import SectionWrapper from "@ui_kit/SectionWrapper"; import ComplexNavText from "./ComplexNavText"; import { createQuiz } from "@root/quizes/actions"; -import { useNavigate } from "react-router-dom"; +import { Link, useNavigate } from "react-router-dom"; import { resetEditConfig } from "@root/quizes/actions"; import AvailablePrivilege from "./AvailablePrivilege"; -import React from "react"; + +import { ReactComponent as TemplateIcon } from "@/assets/quiz-templates/template.svg"; export default function FirstQuiz() { const navigate = useNavigate(); + const theme = useTheme(); return ( - + Создайте свой первый quiz - + + + + + ); } diff --git a/src/pages/createQuize/MyQuizzesFull.tsx b/src/pages/createQuize/MyQuizzesFull.tsx index bd91e43b..268dbfc9 100644 --- a/src/pages/createQuize/MyQuizzesFull.tsx +++ b/src/pages/createQuize/MyQuizzesFull.tsx @@ -7,6 +7,7 @@ import { useMediaQuery, useTheme, } from "@mui/material"; +import { Link } from "react-router-dom"; import { copyQuiz, createQuiz, @@ -24,6 +25,8 @@ import HeaderFull from "@ui_kit/Header/HeaderFull"; import QuizgenegationName from "@utils/quizgenegationName"; import AvailablePrivilege from "./AvailablePrivilege"; +import { ReactComponent as TemplateIcon } from "@/assets/quiz-templates/template.svg"; + interface Props { outerContainerSx?: SxProps; children?: React.ReactNode; @@ -63,20 +66,50 @@ export default function MyQuizzesFull({ }} > Мои quiz - + + + + + (""); - const [tabIndex, setTabIndex] = useState(0); - - const handleTabChange = (event: React.SyntheticEvent, newValue: number) => { - setTabIndex(newValue); - }; - - return ( - - - - Мои quiz - - - - - - Пустой шаблон - - - Широкий инструментарий создания quiz с нуля - - - - - - - - - - - ), - }} - /> - - - - Категории - - - - - - - - - - - - - - Квизы - - (3) - - - - - - - - Исследования и опросы - - (3) - - - - - - - - - Нет подходящего шаблона? - - - - ); -} diff --git a/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx b/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx new file mode 100644 index 00000000..b1ce6f8e --- /dev/null +++ b/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx @@ -0,0 +1,118 @@ +import { Box, Chip, Typography, useTheme, useMediaQuery } from "@mui/material"; +import { useNavigate } from "react-router-dom"; +import { enqueueSnackbar } from "notistack"; + +import { quizApi } from "@/api/quiz"; +import { setEditQuizId } from "@root/quizes/actions"; + +import type { Template } from "./Template"; + +interface QuizTemplateCardProps { + category: string; + template: Template; +} + +export const QuizTemplateCard = ({ + category, + template: { quizId, title, picture, categoryDescription }, +}: QuizTemplateCardProps) => { + const navigate = useNavigate(); + const theme = useTheme(); + const isTablet = useMediaQuery(theme.breakpoints.down("md")); + + const copyTemplate = async () => { + const [copiedQuizId, copyError] = await quizApi.copyTemplate(quizId); + + if (copyError || !copiedQuizId) { + return enqueueSnackbar(copyError); + } + + setEditQuizId(copiedQuizId); + navigate("/edit"); + }; + + return ( + + + + + {categoryDescription && ( + + )} + + + + {title} + + + ); +}; diff --git a/src/pages/createQuize/QuizGallery/SearchTemplate.tsx b/src/pages/createQuize/QuizGallery/SearchTemplate.tsx new file mode 100644 index 00000000..2b58e590 --- /dev/null +++ b/src/pages/createQuize/QuizGallery/SearchTemplate.tsx @@ -0,0 +1,21 @@ +import { FormControl } from "@mui/material"; + +import CustomTextField from "@ui_kit/CustomTextField"; + +type SearchTemplateProps = { + searchValue: string; + setSearchValue: (value: string) => void; +}; + +export const SearchTemplate = ({ + searchValue, + setSearchValue, +}: SearchTemplateProps) => ( + + setSearchValue(target.value)} + /> + +); diff --git a/src/pages/createQuize/QuizGallery/SelectCategory.tsx b/src/pages/createQuize/QuizGallery/SelectCategory.tsx new file mode 100644 index 00000000..426c3e3a --- /dev/null +++ b/src/pages/createQuize/QuizGallery/SelectCategory.tsx @@ -0,0 +1,71 @@ +import { FormControl, InputLabel, MenuItem, Select } from "@mui/material"; + +import ArrowDown from "@icons/ArrowDownIcon"; + +import type { CategoryType } from "./Template"; + +const CATEGORIES = [ + { categoryType: "All", category: "Все" }, + { categoryType: "Tourism", category: "Туризм" }, + { categoryType: "Services", category: "Услуги" }, + { categoryType: "RealEstate", category: "Недвижимость" }, + { categoryType: "Auto", category: "Авто" }, + { categoryType: "Health", category: "Здоровье и уход" }, + { categoryType: "Research", category: "Исследовательские" }, + { categoryType: "Production", category: "Производство" }, + { categoryType: "Repair", category: "Ремонт" }, + { categoryType: "Education", category: "Образование" }, +] as const; + +type SelectCategoryProps = { + categoryType: CategoryType | "All"; + setCategoryType: (categoryType: CategoryType) => void; +}; + +export const SelectCategory = ({ + categoryType, + setCategoryType, +}: SelectCategoryProps) => ( + + + Категории + + + +); diff --git a/src/pages/createQuize/QuizGallery/Template.tsx b/src/pages/createQuize/QuizGallery/Template.tsx new file mode 100644 index 00000000..f12254d0 --- /dev/null +++ b/src/pages/createQuize/QuizGallery/Template.tsx @@ -0,0 +1,75 @@ +import { Box, Typography, useTheme, useMediaQuery } from "@mui/material"; +import { QuizTemplateCard } from "./QuizTemplateCard"; + +export type CategoryType = + | "Tourism" + | "Services" + | "RealEstate" + | "Auto" + | "Health" + | "Research" + | "Production" + | "Repair" + | "Education"; + +export type Template = { + quizId: string; + picture: string; + title: string; + categoryDescription?: string; +}; + +export type Category = { + category: string; + categoryType: CategoryType; + templates: Template[]; +}; + +type TemplateProps = { + template: Category; +}; + +export const Template = ({ + template: { category, templates }, +}: TemplateProps) => { + const theme = useTheme(); + const isSmallMonitor = useMediaQuery(theme.breakpoints.down(1100)); + const isTablet = useMediaQuery(theme.breakpoints.down("md")); + + return ( + <> + + {category} + + ({templates.length}) + + + {templates.map((template) => ( + + ))} + + + ); +}; diff --git a/src/pages/createQuize/QuizGallery/index.tsx b/src/pages/createQuize/QuizGallery/index.tsx new file mode 100644 index 00000000..6e81e307 --- /dev/null +++ b/src/pages/createQuize/QuizGallery/index.tsx @@ -0,0 +1,90 @@ +import { useState, useMemo } from "react"; +import { Box, Button, Typography, useTheme } from "@mui/material"; +import { useNavigate } from "react-router-dom"; +import { createQuiz, resetEditConfig } from "@root/quizes/actions"; +import ComplexNavText from "../ComplexNavText"; +import { SearchTemplate } from "./SearchTemplate"; +import { SelectCategory } from "./SelectCategory"; +import { TEMPLATES } from "./templates"; +import { Template } from "./Template"; + +import HeaderFull from "@ui_kit/Header/HeaderFull"; + +import SectionWrapper from "@ui_kit/SectionWrapper"; + +import type { Category, CategoryType } from "./Template"; + +export default function QuizGallery() { + const [searchValue, setSearchValue] = useState(""); + const [categoryType, setCategoryType] = useState("All"); + const navigate = useNavigate(); + + const filteredTemplates = useMemo( + () => + categoryType === "All" + ? TEMPLATES + : TEMPLATES.filter((item) => item.categoryType === categoryType), + [categoryType], + ); + const foundTemplates = useMemo( + () => + filteredTemplates.reduce((total, category) => { + const templates = category.templates.filter(({ title }) => + title.toLowerCase().includes(searchValue.toLowerCase()), + ); + + if (!templates.length) { + return total; + } + + return [...total, { ...category, templates }]; + }, [] as Category[]), + [searchValue, categoryType], + ); + + return ( + + + + + + Галерея квизов + + + + + + + + {foundTemplates.map((template) => ( +