From a22cf647fd9091474b3837af61813c7e8aceeff4 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Thu, 16 Jun 2022 18:02:01 +0200 Subject: [PATCH] :construction: Progress on new editor --- frontend/src/lib/editor.svelte | 221 ++----------------- frontend/src/lib/editor/settings-card.svelte | 32 +++ frontend/src/lib/editor/sidebar.svelte | 192 ++++++++++++++++ frontend/src/lib/quiz_types.ts | 7 + frontend/src/routes/create.svelte | 3 +- frontend/src/routes/edit.svelte | 2 +- 6 files changed, 249 insertions(+), 208 deletions(-) create mode 100644 frontend/src/lib/editor/settings-card.svelte create mode 100644 frontend/src/lib/editor/sidebar.svelte diff --git a/frontend/src/lib/editor.svelte b/frontend/src/lib/editor.svelte index 8396fcc..3c3fd5a 100644 --- a/frontend/src/lib/editor.svelte +++ b/frontend/src/lib/editor.svelte @@ -2,33 +2,18 @@ import { getLocalization } from '$lib/i18n'; import * as yup from 'yup'; import { dataSchema } from '$lib/yupSchemas'; + import type { EditorData, Question, Answer } from './quiz_types'; + import Sidebar from '$lib/editor/sidebar.svelte'; + import SettingsCard from '$lib/editor/settings-card.svelte'; const { t } = getLocalization(); let schemaInvalid = false; let yupErrorMessage = ''; - interface Data { - public: boolean; - title: string; - description: string; - questions: Question[]; - } - - interface Question { - question: string; - time: string; - image?: string; - answers: Answer[]; - } - - interface Answer { - right: boolean; - answer: string; - } - - export let data: Data; + export let data: EditorData; export let submit_button_text = 'Create'; + let selected_question = -1; let imgur_links_valid = false; const empty_question: Question = { @@ -43,7 +28,7 @@ ] }; - const validateInput = async (data: Data) => { + const validateInput = async (data: EditorData) => { try { await dataSchema.validate(data, { abortEarly: false }); schemaInvalid = false; @@ -79,189 +64,13 @@ }; - - -