✨ Added footer
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
<footer class="text-center text-white border-black">
|
||||||
|
<div class="text-center p-4 bg-gray-700">
|
||||||
|
Made with ❤️ by
|
||||||
|
<a
|
||||||
|
href="https://mawoka.eu?utm_source=ClassQuiz&utm_medium=footer"
|
||||||
|
class="hover:underline bg-clip-text text-transparent bg-gradient-to-r from-[#009444] via-[#39b54a] to-[#8dc63f]"
|
||||||
|
>Mawoka</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-center bg-gray-700 border-t-2 border-t-white">
|
||||||
|
<p class="text-gray-400 text-center">
|
||||||
|
<i>Kahoot! and the K! logo are trademarks of Kahoot! AS</i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
import { navbarVisible } from '$lib/stores';
|
import { navbarVisible } from '$lib/stores';
|
||||||
import { browser } from '$app/env';
|
import { browser } from '$app/env';
|
||||||
import { getLocalization } from '$lib/i18n';
|
import { getLocalization } from '$lib/i18n';
|
||||||
|
import Footer from '$lib/footer.svelte';
|
||||||
|
|
||||||
const { t } = getLocalization();
|
const { t } = getLocalization();
|
||||||
|
|
||||||
@@ -73,7 +74,6 @@
|
|||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>ClassQuiz - Login</title>
|
<title>ClassQuiz - Login</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="flex items-center justify-center h-full px-4">
|
<div class="flex items-center justify-center h-full px-4">
|
||||||
<div>
|
<div>
|
||||||
<span class="p-4" />
|
<span class="p-4" />
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer />
|
||||||
<div
|
<div
|
||||||
class="fixed z-10 inset-0 overflow-y-auto"
|
class="fixed z-10 inset-0 overflow-y-auto"
|
||||||
aria-labelledby="modal-title"
|
aria-labelledby="modal-title"
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
import { getLocalization } from '$lib/i18n';
|
import { getLocalization } from '$lib/i18n';
|
||||||
import { validateSchema } from '@felte/validator-yup';
|
import { validateSchema } from '@felte/validator-yup';
|
||||||
import { navbarVisible } from '$lib/stores';
|
import { navbarVisible } from '$lib/stores';
|
||||||
|
import Footer from '$lib/footer.svelte';
|
||||||
|
|
||||||
const { t } = getLocalization();
|
const { t } = getLocalization();
|
||||||
// import reporter from '@felte/reporter-tippy';
|
// import reporter from '@felte/reporter-tippy';
|
||||||
@@ -227,7 +228,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer />
|
||||||
<div
|
<div
|
||||||
class="fixed z-10 inset-0 overflow-y-auto"
|
class="fixed z-10 inset-0 overflow-y-auto"
|
||||||
aria-labelledby="modal-title"
|
aria-labelledby="modal-title"
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import Footer from '$lib/footer.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="min-h-screen flex flex-col">
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
<div class="pt-4">
|
||||||
|
<Footer />
|
||||||
|
</div>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { navbarVisible } from '$lib/stores';
|
import { navbarVisible } from '$lib/stores';
|
||||||
import { getLocalization } from '$lib/i18n';
|
import { getLocalization } from '$lib/i18n';
|
||||||
|
import Footer from '$lib/footer.svelte';
|
||||||
|
|
||||||
const { t } = getLocalization();
|
const { t } = getLocalization();
|
||||||
|
|
||||||
@@ -22,6 +23,7 @@
|
|||||||
<meta name="description" content={$t('index_page.meta.description')} />
|
<meta name="description" content={$t('index_page.meta.description')} />
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
|
<div class="min-h-screen flex flex-col">
|
||||||
<section>
|
<section>
|
||||||
<div class="pt-12 text-center">
|
<div class="pt-12 text-center">
|
||||||
<h1 class="sm:text-8xl text-6xl mt-6 marck-script">ClassQuiz</h1>
|
<h1 class="sm:text-8xl text-6xl mt-6 marck-script">ClassQuiz</h1>
|
||||||
@@ -34,7 +36,8 @@
|
|||||||
<h1 class="sm:text-6xl text-4xl">{$t('words.stats')}</h1>
|
<h1 class="sm:text-6xl text-4xl">{$t('words.stats')}</h1>
|
||||||
<p class="text-xl pt-4">
|
<p class="text-xl pt-4">
|
||||||
{#await getStats() then stats}
|
{#await getStats() then stats}
|
||||||
There are already <span class="underline">{stats.user_count}</span> users and <!-- TODO: Add translation -->
|
There are already <span class="underline">{stats.user_count}</span> users and
|
||||||
|
<!-- TODO: Add translation -->
|
||||||
<span class="underline">{stats.quiz_count}</span> quizzes on ClassQuiz.
|
<span class="underline">{stats.quiz_count}</span> quizzes on ClassQuiz.
|
||||||
{/await}
|
{/await}
|
||||||
</p>
|
</p>
|
||||||
@@ -50,3 +53,6 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Footer />
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
import type { QuizData } from '../app';
|
import type { QuizData } from '../app';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { getLocalization } from '$lib/i18n';
|
import { getLocalization } from '$lib/i18n';
|
||||||
|
import Footer from '$lib/footer.svelte';
|
||||||
const { t } = getLocalization();
|
const { t } = getLocalization();
|
||||||
|
|
||||||
const getData = async (): Promise<Array<QuizData>> => {
|
const getData = async (): Promise<Array<QuizData>> => {
|
||||||
@@ -57,6 +58,7 @@
|
|||||||
<title>ClassQuiz - Overview</title>
|
<title>ClassQuiz - Overview</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
|
<div class="min-h-screen flex flex-col">
|
||||||
{#await getData()}
|
{#await getData()}
|
||||||
<svg class="h-8 w-8 animate-spin mx-auto my-20" viewBox="3 3 18 18">
|
<svg class="h-8 w-8 animate-spin mx-auto my-20" viewBox="3 3 18 18">
|
||||||
<path
|
<path
|
||||||
@@ -144,7 +146,9 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<!-- Product 1 -->
|
<!-- Product 1 -->
|
||||||
{#each quizzes as quiz}
|
{#each quizzes as quiz}
|
||||||
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
|
<tr
|
||||||
|
class="bg-white border-b dark:bg-gray-800 dark:border-gray-700"
|
||||||
|
>
|
||||||
<td
|
<td
|
||||||
class="py-4 px-6 text-sm font-medium text-gray-900 whitespace-nowrap dark:text-white"
|
class="py-4 px-6 text-sm font-medium text-gray-900 whitespace-nowrap dark:text-white"
|
||||||
>
|
>
|
||||||
@@ -209,3 +213,5 @@
|
|||||||
{:catch err}
|
{:catch err}
|
||||||
<p>{err}</p>
|
<p>{err}</p>
|
||||||
{/await}
|
{/await}
|
||||||
|
</div>
|
||||||
|
<Footer />
|
||||||
|
|||||||
Reference in New Issue
Block a user