From 00105ac69ae56f0fa5ba5d886648b780ef7f8917 Mon Sep 17 00:00:00 2001 From: funkyFangs Date: Tue, 7 Jan 2025 18:04:14 -0600 Subject: [PATCH 1/2] :alien: resolve deprecation --- src/routes/+layout.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 68529de..001fbf2 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,5 +1,5 @@ + + + {#each items as item} +
  • {@render item()}
  • + {/each} +
    + + diff --git a/src/lib/menu/tracker/counters/BrilliantPokemonCounter.svelte b/src/lib/menu/tracker/counters/BrilliantPokemonCounter.svelte index ad5a632..9c0f75e 100644 --- a/src/lib/menu/tracker/counters/BrilliantPokemonCounter.svelte +++ b/src/lib/menu/tracker/counters/BrilliantPokemonCounter.svelte @@ -2,15 +2,18 @@ import Odds from '$lib/menu/tracker/counters/odds/Odds.svelte' import type { HuntTracker } from '$lib/api/HuntTracker' import { getBrilliantPokemonOdds } from '$lib/menu/tracker/counters/odds/Odds' + import { fade } from 'svelte/transition' let { - index, huntTracker, - count = $bindable() + count = $bindable(), + showPercentage, + showFraction }: { - index: number huntTracker: HuntTracker count: number + showPercentage: boolean + showFraction: boolean } = $props() function incrementCount() { @@ -18,21 +21,36 @@ } let odds = $derived(getBrilliantPokemonOdds(huntTracker)) + let id = $derived(huntTracker.id) + let showOdds = $derived(showFraction || showPercentage) -
    +
    - - + + {#if showOdds} + + {/if} - - + + {#if showOdds} + + {/if}
    @@ -43,11 +61,10 @@ @import '../../../../style/palette'; @import '../../../../style/positioning'; - #counter { + .counter-container { display: flex; flex-direction: row; gap: 5px; - align-items: center; justify-content: center; } @@ -57,7 +74,6 @@ } button { - height: 87px; font-size: 1.5em; background-color: @indigo; color: contrast($background-color); diff --git a/src/lib/menu/tracker/counters/ChainCounter.svelte b/src/lib/menu/tracker/counters/ChainCounter.svelte index 53e0d08..03936ba 100644 --- a/src/lib/menu/tracker/counters/ChainCounter.svelte +++ b/src/lib/menu/tracker/counters/ChainCounter.svelte @@ -2,18 +2,19 @@ import Odds from '$lib/menu/tracker/counters/odds/Odds.svelte' import type { OddsFunction } from '$lib/menu/tracker/counters/odds/Odds' import type { HuntTracker } from '$lib/api/HuntTracker' + import { fade } from 'svelte/transition' let { - index, huntTracker, currentChain = $bindable(), maxChain = $bindable(), count = $bindable(), currentChainLabel = 'Chain Length', chainLabel = 'Chains', - getOdds + getOdds, + showFraction, + showPercentage }: { - index: number huntTracker: HuntTracker currentChain: number maxChain: number @@ -21,6 +22,8 @@ currentChainLabel?: string chainLabel?: string getOdds: OddsFunction + showFraction: boolean + showPercentage: boolean } = $props() function incrementChain() { @@ -33,10 +36,12 @@ } let odds = $derived(getOdds(huntTracker)) + let id = $derived(huntTracker.id) + let showOdds = $derived(showFraction || showPercentage) {#if huntTracker.chain} -
    +
    @@ -141,17 +154,15 @@ background: none; } - #counter { + .counter-container { display: flex; flex-direction: row; gap: 5px; - align-items: center; justify-content: center; max-width: calc(100vw - 4 * @gap-length); } button { - height: 70px; font-size: 1.5em; } diff --git a/src/lib/menu/tracker/counters/odds/Odds.svelte b/src/lib/menu/tracker/counters/odds/Odds.svelte index 298119d..0c504a2 100644 --- a/src/lib/menu/tracker/counters/odds/Odds.svelte +++ b/src/lib/menu/tracker/counters/odds/Odds.svelte @@ -61,16 +61,25 @@ Finally, if you wanted to hide the percentage for the previous example, you coul return gcd(second, first % second) } - export let numerator: number - export let denominator: number - export let id: string | null = null - export let inputs: string[] | string = [] - export let showPercentage: boolean = true - export let showFraction: boolean = true - export let accuracy: number = 3 - export let reduce: boolean = true - - $: divisor = reduce ? gcd(numerator, denominator) : 1 + let { + numerator, + denominator, + id, + inputs = [], + showFraction = true, + showPercentage = true, + accuracy = 3, + reduce = true + }: { + numerator: number + denominator: number + id: string + inputs?: string[] | string + showPercentage?: boolean + showFraction?: boolean + accuracy?: number + reduce?: boolean + } = $props() function getDecimalValue(numerator: number, denominator: number) { return denominator === 0 @@ -80,7 +89,8 @@ Finally, if you wanted to hide the percentage for the previous example, you coul : numerator / denominator } - $: decimalValue = getDecimalValue(numerator, denominator) + let divisor = $derived(reduce ? gcd(numerator, denominator) : 1) + let decimalValue = $derived(getDecimalValue(numerator, denominator)) diff --git a/src/lib/menu/tracker/view/PokemonDetails.svelte b/src/lib/menu/tracker/view/PokemonDetails.svelte index bd494aa..b5711ee 100644 --- a/src/lib/menu/tracker/view/PokemonDetails.svelte +++ b/src/lib/menu/tracker/view/PokemonDetails.svelte @@ -5,15 +5,14 @@ import type { HuntTracker } from '$lib/api/HuntTracker' let { - huntTracker = $bindable(), - id = 'pokemon-details' + huntTracker = $bindable() }: { huntTracker: HuntTracker id?: string } = $props() -
    +
    {formatPokemonSpeciesName(huntTracker.pokemonSpecies)} {#if huntTracker.pokemon} {formatPokemonName(huntTracker.pokemonSpecies, huntTracker.pokemon)} export let history: Writable export let selectedTrackerIndex: Writable - export let spritePreference: SpritePreference export let nextId: Writable - export let showNormal: boolean export let generations: Generation[] = [] + export let spritePreference: SpritePreference + export let showNormal: boolean + export let promptOnClose: boolean + export let keepHistory: boolean + export let showFraction: boolean + export let showPercentage: boolean const sprites: SpriteMap = buildSpriteMap(generations) let creatingTracker: boolean = false @@ -34,7 +38,7 @@ } function closeTracker(index: number, huntTracker: HuntTracker = $huntTrackers[index]) { - const confirmed = confirm('Are you sure you want to close this shiny hunt?') + const confirmed = !promptOnClose || confirm('Are you sure you want to close this shiny hunt?') if (confirmed) { const currentSelectedTrackerIndex = $selectedTrackerIndex const currentSelectedTracker = $huntTrackers[currentSelectedTrackerIndex] @@ -50,13 +54,15 @@ : $huntTrackers.indexOf(currentSelectedTracker) ) - history.update((history) => [ - ...history, - { - ...huntTracker, - endDate: new Date().toISOString() - } - ]) + if (keepHistory) { + history.update((history) => [ + ...history, + { + ...huntTracker, + endDate: new Date().toISOString() + } + ]) + } } return confirmed } @@ -169,29 +175,31 @@ role="tablist" aria-label="Hunt Tracker Tabs" tabindex={-1} - on:dragover={onTabDragOver} - on:drop={onTabDrop} + ondragover={onTabDragOver} + ondrop={onTabDrop} > {#each $huntTrackers as huntTracker, index (huntTracker.id)} + {@const id = huntTracker.id} + {/each} @@ -199,7 +207,7 @@ {#if !creatingTracker} {:else if $huntTrackers.length > 0} {#each $huntTrackers as huntTracker, index} + {@const id = huntTracker.id} +
    @@ -225,36 +235,36 @@ - - + + {#if huntTracker.generation >= 5} - + {/if} {#if huntTracker.lure !== undefined} - + {/if} {#if huntTracker.isMassive !== undefined} - + {/if} - - + + {#if huntTracker.generation >= 5} {/if} {#if huntTracker.lure !== undefined} - + {/if} {#if huntTracker.isMassive !== undefined} {/if} @@ -262,14 +272,13 @@
    {formatVersionName(huntTracker.version)}{huntTracker.method}{formatVersionName(huntTracker.version)}{huntTracker.method}{(huntTracker.shinyCharm ?? false) ? 'Yes' : 'No'}{huntTracker.lure ? 'Yes' : 'No'}{huntTracker.lure ? 'Yes' : 'No'} - {huntTracker.isMassive ? 'Yes' : 'No'} + {huntTracker.isMassive ? 'Yes' : 'No'}
    - +
    {/each} {:else} diff --git a/src/lib/menu/tracker/view/sprites/SpriteDisplay.svelte b/src/lib/menu/tracker/view/sprites/SpriteDisplay.svelte index b5f0dd1..618c4e4 100644 --- a/src/lib/menu/tracker/view/sprites/SpriteDisplay.svelte +++ b/src/lib/menu/tracker/view/sprites/SpriteDisplay.svelte @@ -11,8 +11,7 @@ huntTracker, sprites, spritePreference, - showNormal = false, - index + showNormal = false }: { huntTracker: HuntTracker sprites: { @@ -25,7 +24,6 @@ } spritePreference: SpritePreference showNormal: boolean - index: number } = $props() const selectedSprites = $derived(getSprites(sprites, huntTracker, spritePreference)) @@ -46,6 +44,7 @@ : `The sprite for ${formatPokemonName(pokemonSpecies, pokemon ?? pokemonSpecies)}` ) let imageRendering = $derived(isPixelated(huntTracker, spritePreference) ? 'pixelated' : 'smooth') + let id = $derived(huntTracker.id) function onError(event: Event) { const target = event.target as HTMLImageElement @@ -57,7 +56,7 @@
    {shinyAlt} {#if showNormal} - + {/if}
    {#if showNormal}
    {normalAlt} - +
    {/if}
    diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 001fbf2..1d30857 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,4 +1,4 @@ - {#snippet spritePreferenceSnippet()} @@ -55,14 +68,35 @@ {/snippet} +{#snippet promptOnCloseSnippet()} + + +{/snippet} + +{#snippet keepHistorySnippet()} + + +{/snippet} + +{#snippet showFractionSnippet()} + + +{/snippet} + +{#snippet showPercentageSnippet()} + + +{/snippet} + {#snippet clearCacheSnippet()} {/snippet} - + + +{#if open} + +{/if}
    {#if navigating.to} diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index 1552c07..4415941 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -8,6 +8,10 @@ export const ssr = false export const load: PageLoad = () => { return { spritePreference: localStorageWritable(SPRITE_PREFERENCE_STORE, SpritePreference.SHOWDOWN), - showNormal: localStorageWritable('showNormal', false) + showNormal: localStorageWritable('showNormal', false), + promptOnClose: localStorageWritable('promptOnClose', true), + keepHistory: localStorageWritable('keepHistory', true), + showFraction: localStorageWritable('showFraction', true), + showPercentage: localStorageWritable('showPercentage', true) } } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 7e3ef5b..218513a 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -10,6 +10,10 @@ selectedTrackerIndex, spritePreference, showNormal, + promptOnClose, + keepHistory, + showFraction, + showPercentage, nextId } = data @@ -22,4 +26,8 @@ {nextId} spritePreference={$spritePreference} showNormal={$showNormal} + promptOnClose={$promptOnClose} + keepHistory={$keepHistory} + showFraction={$showFraction} + showPercentage={$showPercentage} /> diff --git a/src/routes/history/+page.svelte b/src/routes/history/+page.svelte index 4ab6c73..773c8d8 100644 --- a/src/routes/history/+page.svelte +++ b/src/routes/history/+page.svelte @@ -11,7 +11,7 @@ import Device from 'svelte-device-info' let { data } = $props() - const history = data.history + const { history, keepHistory } = data const emptyField = '-' function getPokemon(record: HuntTracker) { @@ -102,7 +102,9 @@

    History

    - {#if $history.length} + {#if !$keepHistory} +

    History is currently disabled. Enable it in the settings menu to view your history.

    + {:else if $history.length}

    Click a record to view its details.