From 040b28baf459f1aa8777987d6a37191d8f424a12 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Tue, 9 Apr 2024 21:52:57 -0700 Subject: [PATCH] fix a few more types --- frontend/src/Starr/Actions/BlockLists.svelte | 2 +- .../src/Starr/Actions/DownloadClients.svelte | 2 +- frontend/src/Starr/Actions/Exclusions.svelte | 2 +- frontend/src/Starr/Actions/ImportLists.svelte | 2 +- frontend/src/Starr/Actions/Indexers.svelte | 2 +- .../src/Starr/Actions/QualityProfiles.svelte | 2 +- frontend/src/Starr/Database/Index.svelte | 2 +- frontend/src/libs/Translate.svelte | 4 ++-- frontend/src/libs/funcs.ts | 17 +++++++++-------- 9 files changed, 18 insertions(+), 17 deletions(-) diff --git a/frontend/src/Starr/Actions/BlockLists.svelte b/frontend/src/Starr/Actions/BlockLists.svelte index facca62a..79512bc7 100644 --- a/frontend/src/Starr/Actions/BlockLists.svelte +++ b/frontend/src/Starr/Actions/BlockLists.svelte @@ -31,7 +31,7 @@ const starrApp = instance.App const caret = sortDir ? "caret-up" : "caret-down" let all = false - let selected: any = {} + let selected: {[key: string]: boolean} let str: string = JSON.stringify(info.records) let form: any = JSON.parse(str) diff --git a/frontend/src/Starr/Actions/DownloadClients.svelte b/frontend/src/Starr/Actions/DownloadClients.svelte index 6e01bb5b..68adfb91 100644 --- a/frontend/src/Starr/Actions/DownloadClients.svelte +++ b/frontend/src/Starr/Actions/DownloadClients.svelte @@ -20,7 +20,7 @@ let isOpen: any = {} // Modal toggle control. let all: boolean = false // Toggle for select-all link. - let selected: any = {} // Rows selected by key: ID. + let selected: {[key: string]: boolean} // Rows selected by key: ID. let str: string = fixFieldValues(info) // Used for equivalence comparison. let form: any = JSON.parse(str) // Form changes go here. let starrApp = instance.App diff --git a/frontend/src/Starr/Actions/Exclusions.svelte b/frontend/src/Starr/Actions/Exclusions.svelte index a1fa0707..9d6d9c39 100644 --- a/frontend/src/Starr/Actions/Exclusions.svelte +++ b/frontend/src/Starr/Actions/Exclusions.svelte @@ -20,7 +20,7 @@ import { Table } from "@sveltestrap/sveltestrap" let all: boolean = false // Toggle for select-all link. - let selected: any = {} // Rows selected by key: ID. + let selected: {[key: string]: boolean} // Rows selected by key: ID. let str: string = JSON.stringify(info) // Used for equivalence comparison. let form: any = JSON.parse(str) // Form changes go here. let starrApp = instance.App diff --git a/frontend/src/Starr/Actions/ImportLists.svelte b/frontend/src/Starr/Actions/ImportLists.svelte index 4c41e1d6..91f338d5 100644 --- a/frontend/src/Starr/Actions/ImportLists.svelte +++ b/frontend/src/Starr/Actions/ImportLists.svelte @@ -28,7 +28,7 @@ let isOpen: any = {} // Modal toggle control. let all: boolean = false // Toggle for select-all link. - let selected: any = {} // Rows selected by key: ID. + let selected: {[key: string]: boolean} // Rows selected by key: ID. let str: string = fixFieldValues(info) // Used for equivalence comparison. let form: any = JSON.parse(str) // Form changes go here. let starrApp = instance.App diff --git a/frontend/src/Starr/Actions/Indexers.svelte b/frontend/src/Starr/Actions/Indexers.svelte index 682bc22a..54afd076 100644 --- a/frontend/src/Starr/Actions/Indexers.svelte +++ b/frontend/src/Starr/Actions/Indexers.svelte @@ -20,7 +20,7 @@ let isOpen: any = {} // Modal toggle control. let all = false // Toggle for select-all link. - let selected: any = {} // Rows selected by key: ID. + let selected: {[key: string]: boolean} // Rows selected by key: ID. let str = fixFieldValues(info) // Used for equivalence comparison. let form = JSON.parse(str) // Form changes go here. let starrApp = instance.App diff --git a/frontend/src/Starr/Actions/QualityProfiles.svelte b/frontend/src/Starr/Actions/QualityProfiles.svelte index ce254d3f..dbcc8fc1 100644 --- a/frontend/src/Starr/Actions/QualityProfiles.svelte +++ b/frontend/src/Starr/Actions/QualityProfiles.svelte @@ -19,7 +19,7 @@ let isOpen: any = {} // Modal toggle control. let all: boolean = false // Toggle for select-all link. - let selected: any = {} // Rows selected by key: ID. + let selected: {[key: string]: boolean} // Rows selected by key: ID. let str: string = JSON.stringify(info) // Used for equivalence comparison. let form: any = JSON.parse(str) // Form changes go here. diff --git a/frontend/src/Starr/Database/Index.svelte b/frontend/src/Starr/Database/Index.svelte index effc47f1..57a49739 100644 --- a/frontend/src/Starr/Database/Index.svelte +++ b/frontend/src/Starr/Database/Index.svelte @@ -21,7 +21,7 @@ let instance = $conf.Instances[starrApp][$conf.Instance[starrApp]] $: if (!$conf.Instances[starrApp].includes(instance)) { - instance = $conf.Instances[starrApp][0] + instance = $conf.Instances[starrApp][$conf.Instance[starrApp]] } diff --git a/frontend/src/libs/Translate.svelte b/frontend/src/libs/Translate.svelte index 44a349da..54700f0a 100644 --- a/frontend/src/libs/Translate.svelte +++ b/frontend/src/libs/Translate.svelte @@ -6,7 +6,7 @@ export { _ } // pass it through export const isReady = derived(locale, $locale => typeof $locale === 'string') - let formatDate + let formatDate: (arg0: Date|number) => string // type is DateFormatter, but not sure how to import it. dt.subscribe((val) => formatDate = val) export function date(date: string|Date): string { @@ -16,7 +16,7 @@ {#if $isReady == true} diff --git a/frontend/src/libs/funcs.ts b/frontend/src/libs/funcs.ts index 73ea9a5d..71b9cfef 100644 --- a/frontend/src/libs/funcs.ts +++ b/frontend/src/libs/funcs.ts @@ -1,10 +1,11 @@ import { toasts } from "svelte-toasts" +import type { ToastProps, ToastType } from "svelte-toasts/types/common" import { onDestroy } from "svelte" import { conf } from "/src/libs/config" import { _, isReady } from "/src/libs/Translate.svelte" // Keep track of toasts so their theme may be kept up to date. -const sentToasts = [] +const sentToasts: ToastProps[] = [] let errorWord = "ERROR" isReady.subscribe(ready => { @@ -18,14 +19,14 @@ conf.subscribe((value) => { sentToasts.forEach(t => t.theme = isDark ? "dark" : "light") }) -export function toast(type, msg, title="", seconds=7) { +export function toast(type: ToastType, msg: string, title="", seconds=7) { const thisToast = toasts.add({ title: title != "" ? title : type == "error" ? errorWord : "", description: msg, duration: seconds*1000, theme: isDark ? "dark" : "light", type: type, - onClick: () => {thisToast.remove()}, + onClick: () => {thisToast.remove?thisToast.remove():''}, showProgress: true, onRemove: () => { // Remove itself from the running list. const index = sentToasts.indexOf(thisToast) @@ -37,7 +38,7 @@ export function toast(type, msg, title="", seconds=7) { } // onInterval sets an interval and destroys it when it when the page changes. -export function onInterval(callback, seconds) { +export function onInterval(callback: () => void, seconds: number) { const interval = setInterval(callback, seconds*1000) onDestroy(() => clearInterval(interval)) @@ -45,16 +46,16 @@ export function onInterval(callback, seconds) { } // onOnce sets a timer and expires it after one invocation. -export function onOnce(callback, seconds) { - const interval = setInterval(input => { +export function onOnce(callback: () => void, seconds: number) { + const interval = setInterval(() => { clearInterval(interval) - callback(input) + callback() }, seconds*1000) return interval } -export function count(selected, key?): number { +export function count(selected: Record, key?: string): number { let counter = 0 if (key) {