aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Hololive
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-28 15:32:46 -0700
committerFuwn <[email protected]>2024-10-28 15:32:46 -0700
commit39b677404558ae3b7eb34e818d7ca308f62f9cb0 (patch)
tree7f19fca39ecd4237e3c0d1aef2d8e9fa3cec7845 /src/lib/Hololive
parentfeat(graphql): paged badges query (diff)
downloaddue.moe-svelte-5.tar.xz
due.moe-svelte-5.zip
feat: update to svelte 5svelte-5
Diffstat (limited to 'src/lib/Hololive')
-rw-r--r--src/lib/Hololive/Lives.svelte25
-rw-r--r--src/lib/Hololive/Stream.svelte19
2 files changed, 31 insertions, 13 deletions
diff --git a/src/lib/Hololive/Lives.svelte b/src/lib/Hololive/Lives.svelte
index 9e762df9..0f566df4 100644
--- a/src/lib/Hololive/Lives.svelte
+++ b/src/lib/Hololive/Lives.svelte
@@ -4,10 +4,19 @@
import type { Live, ParseResult } from './hololive';
import Stream from './Stream.svelte';
- export let schedule: ParseResult;
- export let pinnedStreams: string[];
- export let getPinnedStreams: () => void;
- export let filter: string | undefined;
+ interface Props {
+ schedule: ParseResult;
+ pinnedStreams: string[];
+ getPinnedStreams: () => void;
+ filter: string | undefined;
+ }
+
+ let {
+ schedule,
+ pinnedStreams,
+ getPinnedStreams,
+ filter
+ }: Props = $props();
const pinStream = (streamer: string) =>
fetch(root(`/api/preferences/pin?stream=${encodeURIComponent(streamer)}`), {
@@ -17,7 +26,7 @@
}
}).then(getPinnedStreams);
- $: categorisedStreams = schedule.lives
+ let categorisedStreams = $derived(schedule.lives
.filter((live) => (filter ? live.streamer === filter : true))
.sort((a, b) => new Date(a.time).getTime() - new Date(b.time).getTime())
.sort((a, b) => {
@@ -55,7 +64,7 @@
return acc;
},
{ live: [], upcoming: [], ended: [] }
- );
+ ));
</script>
{#if schedule.lives.length === 0}
@@ -68,7 +77,7 @@
{/each}
</div>
-<p />
+<p></p>
<div class="container">
{#each categorisedStreams.upcoming as live}
@@ -76,7 +85,7 @@
{/each}
</div>
-<p />
+<p></p>
<div class="container">
{#each categorisedStreams.ended as live}
diff --git a/src/lib/Hololive/Stream.svelte b/src/lib/Hololive/Stream.svelte
index 12681acb..9f2b5e7b 100644
--- a/src/lib/Hololive/Stream.svelte
+++ b/src/lib/Hololive/Stream.svelte
@@ -5,10 +5,19 @@
import locale from '$stores/locale';
import Icon from '@iconify/svelte';
- export let live: any;
- export let pinStream: (streamer: string) => void;
- export let pinnedStreams: string[];
- export let icon: string;
+ interface Props {
+ live: any;
+ pinStream: (streamer: string) => void;
+ pinnedStreams: string[];
+ icon: string;
+ }
+
+ let {
+ live,
+ pinStream,
+ pinnedStreams,
+ icon
+ }: Props = $props();
</script>
<div class="stream card">
@@ -16,7 +25,7 @@
<div class="pin-icon">
<a
href={'#'}
- on:click={(e) => {
+ onclick={(e) => {
e.preventDefault();
pinStream(live.streamer);
}}