diff --git a/src/lib/components/pokedex/PokedexSidebar.svelte b/src/lib/components/pokedex/PokedexSidebar.svelte
index e822789..48534ae 100644
--- a/src/lib/components/pokedex/PokedexSidebar.svelte
+++ b/src/lib/components/pokedex/PokedexSidebar.svelte
@@ -1,4 +1,10 @@
@@ -174,21 +245,44 @@
>
{drawerOpen ? 'Close Filters' : 'Open Filters'}
-
+
+ {#if viewAsBoxes}
+
+ {:else}
+
+ {/if}
- import { onMount, onDestroy } from 'svelte';
- import { user } from '$lib/stores/user.js';
- import { type User } from '@supabase/auth-js';
- import { type CatchRecord } from '$lib/models/CatchRecord';
- import { type CombinedData } from '$lib/models/CombinedData';
- import type { PokedexEntry } from '$lib/models/PokedexEntry';
- import PokedexSidebar from '$lib/components/pokedex/PokedexSidebar.svelte';
- import PokedexViewBoxes from '$lib/components/pokedex/PokedexViewBoxes.svelte';
-
- let combinedData = null as CombinedData[] | null;
- let failedToLoad = false;
-
- let localUser: User | null;
- const unsubscribe = user.subscribe((value) => {
- localUser = value;
- });
- onDestroy(unsubscribe);
-
- let showOrigins = true;
- let showForms = true;
- let drawerOpen = false;
- let catchRegion = '';
- let catchGame = '';
- let creatingRecords = false;
-
- function toggleOrigins() {
- showOrigins = !showOrigins;
- }
-
- async function toggleForms() {
- showForms = !showForms;
- await getData();
- }
-
- let showShiny = false;
- let currentPlacement = 'boxPlacementForms';
- let boxNumbers = Array;
-
- async function toggleShiny() {
- showShiny = !showShiny;
- if (showShiny) {
- showForms = false;
- }
-
- await getData();
- }
-
- async function getData(setCombinedDataToNull = true) {
- if (setCombinedDataToNull) {
- combinedData = null;
- }
-
- const response = await fetch(
- `/api/combined-data/all?enableForms=${showForms}®ion=${catchRegion}&game=${catchGame}`
- );
- const data = await response.json();
-
- if (data.error) {
- failedToLoad = true;
- return;
- }
-
- combinedData = data;
- boxNumbers = [
- ...new Set(combinedData.map(({ pokedexEntry }) => pokedexEntry[currentPlacement].box))
- ].filter(Boolean);
- }
-
- onMount(async () => {
- await getData();
- });
-
- $: currentPlacement = showForms ? 'boxPlacementForms' : 'boxPlacement';
-
- async function updateCatchRecords(
- boxNumber: number,
- caught: boolean,
- needsToEvolve: boolean,
- inHome: boolean | null = null
- ) {
- let catchRecordsToUpdate = combinedData
- .filter(({ pokedexEntry }) => pokedexEntry[currentPlacement].box === boxNumber)
- .map(({ catchRecord }) => {
- // Create the base object with existing properties
- let updatedRecord = { ...catchRecord };
-
- if (inHome !== null) {
- updatedRecord = {
- ...updatedRecord,
- inHome
- };
- } else {
- updatedRecord = {
- ...updatedRecord,
- caught,
- haveToEvolve: needsToEvolve
- };
- }
-
- return updatedRecord;
- });
-
- await fetch('/api/catch-records', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify(catchRecordsToUpdate)
- }).then(async () => {
- // TODO - Notify the user that data is being updated
- await getData(false);
- // TODO - Remove the notification
- });
- }
-
- async function markBoxAsNotCaught(boxNumber: number) {
- await updateCatchRecords(boxNumber, false, false);
- }
-
- async function markBoxAsCaught(boxNumber: number) {
- await updateCatchRecords(boxNumber, true, false);
- }
-
- async function markBoxAsNeedsToEvolve(boxNumber: number) {
- await updateCatchRecords(boxNumber, false, true);
- }
-
- async function markBoxAsInHome(boxNumber: number) {
- await updateCatchRecords(boxNumber, false, false, true);
- }
-
- async function markBoxAsNotInHome(boxNumber: number) {
- await updateCatchRecords(boxNumber, false, false, false);
- }
-
-
-
- Living Dex Tracker - My Boxes
-
-
-
-
-{#if !localUser}
- Please sign in
-{:else}
-
-
-
-
-
-
-
-
-{/if}