diff options
| author | Fuwn <[email protected]> | 2023-12-17 22:32:25 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-17 22:32:25 -0800 |
| commit | 5fa05c2e19e537bf092f4f2dbd12049227c39a04 (patch) | |
| tree | c06f51596c3a715e1165b3650a11a291ff6d73aa /src/lib/Tools/Wrapped.svelte | |
| parent | fix(activities): fill missing dates (diff) | |
| download | due.moe-5fa05c2e19e537bf092f4f2dbd12049227c39a04.tar.xz due.moe-5fa05c2e19e537bf092f4f2dbd12049227c39a04.zip | |
feat(wrapped): activity history panel
Diffstat (limited to 'src/lib/Tools/Wrapped.svelte')
| -rw-r--r-- | src/lib/Tools/Wrapped.svelte | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/lib/Tools/Wrapped.svelte b/src/lib/Tools/Wrapped.svelte index ed8e700e..3c394a0d 100644 --- a/src/lib/Tools/Wrapped.svelte +++ b/src/lib/Tools/Wrapped.svelte @@ -6,7 +6,7 @@ } from '$lib/AniList/identity'; import { onMount } from 'svelte'; import { wrapped } from '$lib/AniList/wrapped.js'; - import { activityHistory, fillMissingDays } from '$lib/AniList/activity.js'; + import { activityHistory as getActivityHistory, fillMissingDays } from '$lib/AniList/activity.js'; import { Type, mediaListCollection, type Media } from '$lib/AniList/media.js'; import anime from '../../stores/anime.js'; import lastPruneTimes from '../../stores/lastPruneTimes.js'; @@ -18,6 +18,7 @@ import { clearAllParameters } from './tool.js'; import { env } from '$env/dynamic/public'; import { estimatedDayReading } from '$lib/Media/Manga/time'; + import ActivityHistoryGrid from './ActivityHistoryGrid.svelte'; export let user: AniListAuthorisation; @@ -38,6 +39,7 @@ let highestRatedCount = 5; let mounted = false; let generated = false; + let activityHistory = true; $: { if (browser && mounted) { @@ -50,6 +52,7 @@ $page.url.searchParams.set('width', width.toString()); $page.url.searchParams.set('lightMode', lightMode.toString()); $page.url.searchParams.set('highestRatedCount', highestRatedCount.toString()); + $page.url.searchParams.set('activityHistory', activityHistory.toString()); history.replaceState(null, '', `?${$page.url.searchParams.toString()}`); } @@ -116,7 +119,8 @@ 'includeRepeats', 'width', 'forceDark', - 'highestRatedCount' + 'highestRatedCount', + 'activityHistory' ]); if (browser) { @@ -129,6 +133,7 @@ width = parseInt($page.url.searchParams.get('width') || '980', 10); lightMode = $page.url.searchParams.get('lightMode') === 'true'; highestRatedCount = parseInt($page.url.searchParams.get('highestRatedCount') || '5', 10); + activityHistory = $page.url.searchParams.get('activityHistory') === 'true'; } if (user !== undefined) { @@ -308,7 +313,7 @@ Messages: {wrapped.activities.messageCount} </div> <div> - Days Active: {#await activityHistory(currentUserIdentity)} + Days Active: {#await getActivityHistory(currentUserIdentity)} Loading ... {:then activities} {#if activities === undefined} @@ -405,6 +410,13 @@ </div> </div> </div> + {#if activityHistory} + <div class="categories-grid" style="padding-top: 0;"> + <div class="category-grid pure-category" id="watermark"> + <ActivityHistoryGrid {user} /> + </div> + </div> + {/if} {#if watermark} <div class="categories-grid" style="padding-top: 0;"> <div class="category-grid pure-category" id="watermark"> @@ -424,6 +436,7 @@ <summary>Options</summary> <div id="options"> <input type="checkbox" bind:checked={watermark} /> Enable watermark<br /> + <input type="checkbox" bind:checked={activityHistory} /> Enable activity history<br /> <input type="checkbox" bind:checked={transparency} /> Enable background transparency<br /> <input type="checkbox" bind:checked={lightMode} /> Enable light mode<br /> |