From 36e3b39a20794a3e939005d925729865259d4cbf Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 4 Jan 2026 14:41:27 -0800 Subject: [PATCH] remove suggestion UI from batch import (#451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Removes the suggestion badge/accept/dismiss UI from batch import pages. Form fields are still pre-populated with parsed wiki data, but users no longer see sparkle icons or have to accept/dismiss individual suggestions. Changes: - Rename type aliases: `*Suggestions` → `ParsedData*` - Delete `SuggestionBadge.svelte` and `SuggestionDetailItem.svelte` - Remove suggestion props from all section components - Simplify import pages by removing dismissed state tracking and handlers **Requires:** jedmund/hensei-api#204 ## Test plan - [ ] Test batch import for characters, weapons, and summons - [ ] Verify form fields still pre-populate from wiki data - [ ] Verify edit pages still work (they share section components) --- src/lib/api/adapters/entity.adapter.ts | 32 +- src/lib/components/ui/SuggestionBadge.svelte | 185 ----------- .../components/ui/SuggestionDetailItem.svelte | 294 ------------------ .../sections/CharacterMetadataSection.svelte | 19 +- .../sections/CharacterStatsSection.svelte | 49 +-- .../sections/CharacterTaxonomySection.svelte | 49 +-- .../sections/CharacterUncapSection.svelte | 23 +- .../sections/SummonGachaSection.svelte | 12 +- .../sections/SummonMetadataSection.svelte | 19 +- .../sections/SummonStatsSection.svelte | 49 +-- .../sections/SummonTaxonomySection.svelte | 19 +- .../sections/SummonUncapSection.svelte | 29 +- .../sections/WeaponGachaSection.svelte | 12 +- .../sections/WeaponMetadataSection.svelte | 19 +- .../sections/WeaponStatsSection.svelte | 49 +-- .../sections/WeaponTaxonomySection.svelte | 25 +- .../sections/WeaponUncapSection.svelte | 23 +- .../database/characters/import/+page.svelte | 133 +++----- .../database/summons/import/+page.svelte | 129 ++------ .../database/weapons/import/+page.svelte | 135 +++----- 20 files changed, 169 insertions(+), 1135 deletions(-) delete mode 100644 src/lib/components/ui/SuggestionBadge.svelte delete mode 100644 src/lib/components/ui/SuggestionDetailItem.svelte diff --git a/src/lib/api/adapters/entity.adapter.ts b/src/lib/api/adapters/entity.adapter.ts index 80da378c..9b313ea4 100644 --- a/src/lib/api/adapters/entity.adapter.ts +++ b/src/lib/api/adapters/entity.adapter.ts @@ -520,9 +520,9 @@ export interface EntityRawData { } /** - * Suggestions for character fields parsed from wiki data + * Parsed character data from wiki text */ -export interface CharacterSuggestions { +export interface ParsedCharacterData { nameEn?: string nameJp?: string granblueId?: string @@ -558,9 +558,9 @@ export interface CharacterSuggestions { } /** - * Suggestions for weapon fields parsed from wiki data + * Parsed weapon data from wiki text */ -export interface WeaponSuggestions { +export interface ParsedWeaponData { nameEn?: string nameJp?: string granblueId?: string @@ -590,9 +590,9 @@ export interface WeaponSuggestions { } /** - * Suggestions for summon fields parsed from wiki data + * Parsed summon data from wiki text */ -export interface SummonSuggestions { +export interface ParsedSummonData { nameEn?: string nameJp?: string granblueId?: string @@ -629,7 +629,7 @@ export interface BatchPreviewResult { status: 'success' | 'error' granblueId?: string wikiRaw?: string - suggestions?: T + parsedData?: T imageStatus?: 'pending' | 'exists' | 'error' | 'no_id' error?: string redirectedFrom?: string @@ -1240,7 +1240,7 @@ export class EntityAdapter extends BaseAdapter { // ============================================ /** - * Fetches wiki data and suggestions for multiple character wiki pages + * Fetches wiki data and parses it for multiple character wiki pages * Requires editor role (>= 7) * @param wikiPages - Array of wiki page names (max 10) * @param wikiData - Optional pre-fetched wiki text keyed by page name @@ -1248,21 +1248,21 @@ export class EntityAdapter extends BaseAdapter { async batchPreviewCharacters( wikiPages: string[], wikiData?: Record - ): Promise> { + ): Promise> { const body: { wiki_pages: string[]; wiki_data?: Record } = { wiki_pages: wikiPages } if (wikiData) { body.wiki_data = wikiData } - return this.request>('/characters/batch_preview', { + return this.request>('/characters/batch_preview', { method: 'POST', body }) } /** - * Fetches wiki data and suggestions for multiple weapon wiki pages + * Fetches wiki data and parses it for multiple weapon wiki pages * Requires editor role (>= 7) * @param wikiPages - Array of wiki page names (max 10) * @param wikiData - Optional pre-fetched wiki text keyed by page name @@ -1270,21 +1270,21 @@ export class EntityAdapter extends BaseAdapter { async batchPreviewWeapons( wikiPages: string[], wikiData?: Record - ): Promise> { + ): Promise> { const body: { wiki_pages: string[]; wiki_data?: Record } = { wiki_pages: wikiPages } if (wikiData) { body.wiki_data = wikiData } - return this.request>('/weapons/batch_preview', { + return this.request>('/weapons/batch_preview', { method: 'POST', body }) } /** - * Fetches wiki data and suggestions for multiple summon wiki pages + * Fetches wiki data and parses it for multiple summon wiki pages * Requires editor role (>= 7) * @param wikiPages - Array of wiki page names (max 10) * @param wikiData - Optional pre-fetched wiki text keyed by page name @@ -1292,14 +1292,14 @@ export class EntityAdapter extends BaseAdapter { async batchPreviewSummons( wikiPages: string[], wikiData?: Record - ): Promise> { + ): Promise> { const body: { wiki_pages: string[]; wiki_data?: Record } = { wiki_pages: wikiPages } if (wikiData) { body.wiki_data = wikiData } - return this.request>('/summons/batch_preview', { + return this.request>('/summons/batch_preview', { method: 'POST', body }) diff --git a/src/lib/components/ui/SuggestionBadge.svelte b/src/lib/components/ui/SuggestionBadge.svelte deleted file mode 100644 index 0931c8cf..00000000 --- a/src/lib/components/ui/SuggestionBadge.svelte +++ /dev/null @@ -1,185 +0,0 @@ - - - - -{#if suggestion !== undefined && suggestion !== null && !dismissed} - - - {#snippet child({ props })} - - {/snippet} - - -
- {#if label} - {label}: - {/if} - {displayValue()} -
-
- {#if onAccept} - - {/if} - {#if onDismiss} - - {/if} -
-
-
-{/if} - - diff --git a/src/lib/components/ui/SuggestionDetailItem.svelte b/src/lib/components/ui/SuggestionDetailItem.svelte deleted file mode 100644 index 0b813684..00000000 --- a/src/lib/components/ui/SuggestionDetailItem.svelte +++ /dev/null @@ -1,294 +0,0 @@ - - - - -
-
-
- {label} - {#if editable && showSuggestion} - - {/if} -
- {#if sublabel} - {sublabel} - {/if} -
- {#if editable} -
- {#if type === 'select' && options} - - {:else if type === 'date'} - - {:else} - - {#if showLinkButton} - - {/if} - {/if} -
- {:else if children} -
- {@render children()} -
- {:else} - {value || '—'} - {/if} -
- - diff --git a/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte b/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte index 5a4c889b..acfebef7 100644 --- a/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte +++ b/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte @@ -1,10 +1,8 @@