From 31ac15a9b9f33afce0e0fa40b463278916e45562 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 27 Nov 2023 21:10:20 -0800 Subject: feat(list): furigana --- bun.lockb | Bin 108741 -> 109085 bytes package.json | 3 ++- src/lib/List/Anime/CleanAnimeList.svelte | 11 ++--------- src/lib/List/Manga/CleanMangaList.svelte | 11 ++--------- src/lib/List/MediaTitle.svelte | 28 ++++++++++++++++++++++++++++ src/routes/settings/+page.svelte | 9 ++++++++- src/stores/settings.ts | 4 +++- 7 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 src/lib/List/MediaTitle.svelte diff --git a/bun.lockb b/bun.lockb index 281f941c..dfeb75c7 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index ad751010..e4477c82 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "modern-screenshot": "^4.4.33", "rss-parser": "^3.13.0", "socket.io": "^4.7.2", - "socket.io-client": "^4.7.2" + "socket.io-client": "^4.7.2", + "wanakana": "^5.3.1" } } diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index 7ce10d4d..2da182d5 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -6,6 +6,7 @@ import { airingTime, cleanCache, totalEpisodes, updateMedia } from '$lib/Media/anime'; import type { AniListAuthorisation, UserIdentity } from '$lib/AniList/identity'; import ListTitle from '../ListTitle.svelte'; + import MediaTitle from '../MediaTitle.svelte'; export let media: Media[]; export let title: string; @@ -49,15 +50,7 @@ ? 'color: lightcoral' : ''} > - {#if $settings.displayNativeTitles} - - {anime.title.native} - - {:else} - - {anime.title.english || anime.title.romaji || anime.title.native} - - {/if} + {#if $settings.displaySocialButton} diff --git a/src/lib/List/Manga/CleanMangaList.svelte b/src/lib/List/Manga/CleanMangaList.svelte index 659388ea..009fb868 100644 --- a/src/lib/List/Manga/CleanMangaList.svelte +++ b/src/lib/List/Manga/CleanMangaList.svelte @@ -3,6 +3,7 @@ import { volumeCount } from '$lib/Media/manga'; import settings from '../../../stores/settings'; import ListTitle from '../ListTitle.svelte'; + import MediaTitle from '../MediaTitle.svelte'; export let media: Media[]; export let cleanCache: () => void; @@ -39,15 +40,7 @@ ? 'color: lightcoral' : ''} > - {#if $settings.displayNativeTitles} - - {manga.title.native} - - {:else} - - {manga.title.english || manga.title.romaji || manga.title.native} - - {/if} + {#if $settings.displaySocialButton} diff --git a/src/lib/List/MediaTitle.svelte b/src/lib/List/MediaTitle.svelte new file mode 100644 index 00000000..b98f4125 --- /dev/null +++ b/src/lib/List/MediaTitle.svelte @@ -0,0 +1,28 @@ + + +{#if $settings.displayNativeTitles} + {#if $settings.displayFurigana} + + + {media.title.native} + + {wanakana.toKana(media.title.romaji)} + + + + {:else} + + {media.title.native} + + {/if} +{:else} + + {media.title.english || media.title.romaji || media.title.native} + +{/if} diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index 2282ba7e..4a40b318 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -60,7 +60,14 @@ - + + {#if $settings.displayNativeTitles} + + {/if} diff --git a/src/stores/settings.ts b/src/stores/settings.ts index e7d07324..a194f6c3 100644 --- a/src/stores/settings.ts +++ b/src/stores/settings.ts @@ -21,6 +21,7 @@ export interface Settings { guessMethod: 'median' | 'iqr_median' | 'iqr_mode' | 'mode'; disableOutOfDateVolumeWarning: boolean; displayPlannedAnime: boolean; + displayFurigana: boolean; } const defaultSettings: Settings = { @@ -42,7 +43,8 @@ const defaultSettings: Settings = { displayNativeTitles: false, guessMethod: 'median', disableOutOfDateVolumeWarning: false, - displayPlannedAnime: true + displayPlannedAnime: true, + displayFurigana: false }; const createStore = () => { -- cgit v1.2.3