From cb0773b03e1ede99569b16bcc629e80b607386c5 Mon Sep 17 00:00:00 2001
From: Josh Creek <8179928+jcreek@users.noreply.github.com>
Date: Fri, 9 Jan 2026 22:21:01 +0000
Subject: [PATCH] feat(#57): Replace 'mark box as' buttons with dropdown for
better ux
---
.../pokedex/PokedexViewBoxes.svelte | 107 +++++++++++++++---
1 file changed, 91 insertions(+), 16 deletions(-)
diff --git a/src/lib/components/pokedex/PokedexViewBoxes.svelte b/src/lib/components/pokedex/PokedexViewBoxes.svelte
index f7d6837..fcbd22a 100644
--- a/src/lib/components/pokedex/PokedexViewBoxes.svelte
+++ b/src/lib/components/pokedex/PokedexViewBoxes.svelte
@@ -25,6 +25,17 @@
let filterInHome = false;
let filterNotInHome = false;
+ // Bulk actions menu state (one open menu at a time)
+ let openBulkMenuForBox: number | null = null;
+
+ onMount(() => {
+ const close = () => {
+ openBulkMenuForBox = null;
+ };
+ window.addEventListener('click', close);
+ return () => window.removeEventListener('click', close);
+ });
+
let filteredCombinedData: CombinedData[] = [];
let filteredTotal = 0;
let overallTotal = 0;
@@ -336,22 +347,86 @@
>
{#each boxNumbers as boxNumber}
-
Box {boxNumber}
-
-
-
-
-
+
+
Box {boxNumber}
+
+
+
+ {#if openBulkMenuForBox === boxNumber}
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+ {/if}
+
+
{#each combinedData as { pokedexEntry, catchRecord }, index}
{@const placement = calculateBoxPlacement(index)}