diff --git a/frontend/src/helperComponents/Anime.svelte b/frontend/src/helperComponents/Anime.svelte index fa0b091..4010694 100644 --- a/frontend/src/helperComponents/Anime.svelte +++ b/frontend/src/helperComponents/Anime.svelte @@ -11,22 +11,22 @@ } from "../helperModules/GlobalVariablesAndHelperFunctions.svelte"; import { push } from "svelte-spa-router"; import WebsiteLink from "./WebsiteLink.svelte"; - import type { AniListGetSingleAnime } from "../anilist/types/AniListCurrentUserWatchListType"; + import type { + AniListGetSingleAnime, + AniListUpdateVariables, + MALAnime, + MalListStatus, + MALUploadStatus, + SimklAnime, + } from "../../bindings/AniTrack/models"; import Rating from "./Rating.svelte"; import { convertAniListDateToString, convertAniListDateToDate, } from "../helperFunctions/convertAniListDateIn"; import AnimeTable from "./AnimeTable.svelte"; - import type { - MALAnime, - MalListStatus, - MALUploadStatus, - } from "../mal/types/MALTypes"; - import type { SimklAnime } from "../simkl/types/simklTypes"; import { writable } from "svelte/store"; import type { StatusOption, StatusOptions } from "../helperTypes/StatusTypes"; - import type { AniListUpdateVariables } from "../anilist/types/AniListTypes"; import { convertDateToAniList } from "../helperFunctions/convertDateToAniList"; import {App} from "../../bindings/AniTrack"; import { AddAnimeServiceToTable } from "../helperModules/AddAnimeServiceToTable.svelte"; @@ -35,12 +35,12 @@ import { Badge, Tooltip } from "flowbite-svelte"; const re = /^([0-9]{4})-([0-9]{2})-([0-9]{2})/; - let isAniListLoggedIn: boolean; - let isMalLoggedIn: boolean; - let isSimklLoggedIn: boolean; - let currentAniListAnime: AniListGetSingleAnime; - let currentMalAnime: MALAnime; - let currentSimklAnime: SimklAnime; + let isAniListLoggedIn!: boolean; + let isMalLoggedIn!: boolean; + let isSimklLoggedIn!: boolean; + let currentAniListAnime!: AniListGetSingleAnime; + let currentMalAnime!: MALAnime; + let currentSimklAnime!: SimklAnime; let submitting = writable(false); let isSubmitting: boolean; let submitSuccess = writable(false); @@ -103,11 +103,15 @@ let finishDate = ""; if (currentMalAnime.my_list_status.start_date !== "") { const startArray = re.exec(currentMalAnime.my_list_status.start_date); - startDate = `${startArray[2]}-${startArray[3]}-${startArray[1]}`; + if (startArray) { + startDate = `${startArray[2]}-${startArray[3]}-${startArray[1]}`; + } } if (currentMalAnime.my_list_status.finish_date !== "") { const finishArray = re.exec(currentMalAnime.my_list_status.finish_date); - finishDate = `${finishArray[2]}-${finishArray[3]}-${finishArray[1]}`; + if (finishArray) { + finishDate = `${finishArray[2]}-${finishArray[3]}-${finishArray[1]}`; + } } AddAnimeServiceToTable({ id: `m-${currentMalAnime.id}`, @@ -180,7 +184,11 @@ submitData.status = startingAnilistStatusOption; continue; } - submitData[key] = value; + // The only remaining form field is "notes" (string); anything else + // is ignored rather than assigned into a mistyped slot. + if (key === "notes" && typeof value === "string") { + submitData.notes = value; + } } try { @@ -271,13 +279,17 @@ const startArray = re.exec( currentMalAnime.my_list_status.start_date, ); - startDate = `${startArray[2]}-${startArray[3]}-${startArray[1]}`; + if (startArray) { + startDate = `${startArray[2]}-${startArray[3]}-${startArray[1]}`; + } } if (currentMalAnime.my_list_status.finish_date !== "") { const finishArray = re.exec( currentMalAnime.my_list_status.finish_date, ); - finishDate = `${finishArray[2]}-${finishArray[3]}-${finishArray[1]}`; + if (finishArray) { + finishDate = `${finishArray[2]}-${finishArray[3]}-${finishArray[1]}`; + } } AddAnimeServiceToTable({ id: `m-${currentMalAnime.id}`, @@ -503,7 +515,7 @@ {title}
-
+
{#if showActionButtons}
- - -
diff --git a/frontend/src/helperComponents/ErrorModal.svelte b/frontend/src/helperComponents/ErrorModal.svelte index 598d4d1..3a1b17f 100644 --- a/frontend/src/helperComponents/ErrorModal.svelte +++ b/frontend/src/helperComponents/ErrorModal.svelte @@ -61,13 +61,15 @@ dismiss this message to continue with limited functionality.

-
- {#if $apiError.canRetry} - - {/if} - -
+ {#snippet footer()} +
+ {#if $apiError.canRetry} + + {/if} + +
+ {/snippet} {/if} diff --git a/frontend/src/helperComponents/Header.svelte b/frontend/src/helperComponents/Header.svelte index 21dac39..c1aa211 100644 --- a/frontend/src/helperComponents/Header.svelte +++ b/frontend/src/helperComponents/Header.svelte @@ -13,9 +13,9 @@ import logo from "../assets/images/AniTrackLogo.svg"; import { link } from "svelte-spa-router"; - let isAniListLoggedIn: boolean; - let isSimklLoggedIn: boolean; - let isMALLoggedIn: boolean; + let isAniListLoggedIn!: boolean; + let isSimklLoggedIn!: boolean; + let isMALLoggedIn!: boolean; let loggingIn: string[] = []; aniListLoggedIn.subscribe((value) => (isAniListLoggedIn = value)); @@ -42,7 +42,8 @@