summaryrefslogtreecommitdiff
path: root/src/routes/Header.svelte
diff options
context:
space:
mode:
authoraxtloss <axtlos@disroot.org>2024-08-20 23:22:50 +0200
committeraxtloss <axtlos@disroot.org>2024-08-20 23:22:50 +0200
commitb6c6b705c15ff02e26eb5463a8b1550fa131ee38 (patch)
tree7767ce76ac88b27a30721b0ca71f4fe7c1ea8cf0 /src/routes/Header.svelte
parent7890c18787e41ee3e69248dfecfc419eab020383 (diff)
downloadwebsite-b6c6b705c15ff02e26eb5463a8b1550fa131ee38.tar.gz
website-b6c6b705c15ff02e26eb5463a8b1550fa131ee38.tar.bz2
add loader for long loading pages
Diffstat (limited to 'src/routes/Header.svelte')
-rw-r--r--src/routes/Header.svelte35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/routes/Header.svelte b/src/routes/Header.svelte
index 0366e6d..d343a17 100644
--- a/src/routes/Header.svelte
+++ b/src/routes/Header.svelte
@@ -1,7 +1,4 @@
<script context="module" lang="ts">
- import { type ComponentType, SvelteComponent} from "svelte";
- var showmsg: boolean = false;
-
export type Header = {
addMessage (message: string, options?: Partial<MessageOptions>): void
};
@@ -28,10 +25,11 @@
import { setContext } from "svelte";
import { fly } from "svelte/transition";
import { readable, writable } from "svelte/store";
+ import { isNavigating } from "$lib/navigation.ts";
const newestMessage = writable<HeaderMessage|null>(null);
- const rose = chrome ? boowomp : logo;
+ const Rose = chrome ? boowomp : logo;
const currentMessage = writable<HeaderMessage|null>(null, (set) => {
let $currentMessage: HeaderMessage|null = null;
@@ -84,7 +82,11 @@
<header>
<div class="corner">
<a href="/" class="name">
- <img id="logo" src={rose} alt="rose"/>
+ {#if $isNavigating}
+ <span class="loader"></span>
+ {:else}
+ <img id="logo" src={Rose} alt="rose"/>
+ {/if}
<p>rose</p>
</a>
</div>
@@ -143,6 +145,22 @@
padding-bottom: 6px;
}
+ .loader {
+ width: 1.5em;
+ height: 1.5em;
+ border: 5px solid transparent;
+ border-bottom-color: #E2122D;
+ border-radius: 50%;
+ display: inline-block;
+ box-sizing: border-box;
+ animation: rotation 1s linear infinite;
+ }
+
+ @keyframes rotation {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+ }
+
.corner {
height: 3em;
margin-bottom: 0px;
@@ -173,13 +191,6 @@
object-fit: contain;
}
- & img {
- width: 1.5em;
- height: 1.5em;
- object-fit: contain;
-
- }
-
}
.center {