diff --git a/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte b/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte
index 6208ce7b..7950607e 100644
--- a/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte
+++ b/src/lib/features/database/characters/sections/CharacterMetadataSection.svelte
@@ -6,8 +6,10 @@
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import SuggestionDetailItem from '$lib/components/ui/SuggestionDetailItem.svelte'
import CopyableText from '$lib/components/ui/CopyableText.svelte'
+ import Select from '$lib/components/ui/Select.svelte'
import { getRarityLabel, getRarityOptions } from '$lib/utils/rarity'
import { getWeaponImage } from '$lib/utils/images'
+ import { CHARACTER_SEASON_NAMES, getSeasonName } from '$lib/types/enums'
interface Props {
character: any
@@ -32,6 +34,15 @@
const rarityOptions = getRarityOptions()
+ // Season options (nullable, so include a "None" option)
+ const seasonOptions = [
+ { value: 0, label: 'None' },
+ ...Object.entries(CHARACTER_SEASON_NAMES).map(([value, label]) => ({
+ value: Number(value),
+ label
+ }))
+ ]
+
function formatPromotions(promotionNames: string[] | undefined): string {
if (!promotionNames || promotionNames.length === 0) return '—'
return promotionNames.join(', ')
@@ -52,13 +63,30 @@
onDismissSuggestion={() => onDismissSuggestion?.('rarity')}
/>
+
+
+
{:else}
+ {#if character.season}
+
+ {/if}
{#if character.granblueId}
@@ -66,6 +94,11 @@
—
{/if}
+ {#if character.characterId?.length}
+
+
+
+ {/if}
{#if character.recruitedBy}
diff --git a/src/lib/features/database/characters/sections/CharacterTaxonomySection.svelte b/src/lib/features/database/characters/sections/CharacterTaxonomySection.svelte
index e65b4ad4..de46bbb4 100644
--- a/src/lib/features/database/characters/sections/CharacterTaxonomySection.svelte
+++ b/src/lib/features/database/characters/sections/CharacterTaxonomySection.svelte
@@ -8,22 +8,11 @@
import MultiSelect from '$lib/components/ui/MultiSelect.svelte'
import ElementLabel from '$lib/components/labels/ElementLabel.svelte'
import ProficiencyLabel from '$lib/components/labels/ProficiencyLabel.svelte'
- import { getElementLabel, getElementOptions } from '$lib/utils/element'
+ import { getElementOptions } from '$lib/utils/element'
import { getRaceLabel, getRaceOptions } from '$lib/utils/race'
import { getGenderLabel, getGenderOptions } from '$lib/utils/gender'
import { getProficiencyOptions } from '$lib/utils/proficiency'
- import {
- CharacterSeason,
- CharacterSeries,
- CHARACTER_SEASON_NAMES,
- CHARACTER_SERIES_NAMES,
- PROMOTION_NAMES,
- getSeasonName,
- getSeriesNames,
- getPromotionNames
- } from '$lib/types/enums'
-
- type ElementName = 'wind' | 'fire' | 'water' | 'earth' | 'dark' | 'light'
+ import { CHARACTER_SERIES_NAMES, getSeriesNames } from '$lib/types/enums'
interface Props {
character: any
@@ -51,45 +40,17 @@
const genderOptions = getGenderOptions()
const proficiencyOptions = getProficiencyOptions()
- // Season options (nullable, so include a "None" option)
- const seasonOptions = [
- { value: 0, label: 'None' },
- ...Object.entries(CHARACTER_SEASON_NAMES).map(([value, label]) => ({
- value: Number(value),
- label
- }))
- ]
-
// Series options for multiselect
const seriesOptions = Object.entries(CHARACTER_SERIES_NAMES).map(([value, label]) => ({
value: Number(value),
label
}))
- // Promotion options for multiselect
- const promotionOptions = Object.entries(PROMOTION_NAMES).map(([value, label]) => ({
- value: Number(value),
- label
- }))
-
- // Get element name for checkbox theming
- const elementName = $derived.by((): ElementName | undefined => {
- const el = editMode ? editData?.element : character?.element
- const label = getElementLabel(el)
- return label !== '—' && label !== 'Null' ? (label.toLowerCase() as ElementName) : undefined
- })
-
// Format series for display
function formatSeriesDisplay(series: number[]): string {
if (!series || series.length === 0) return '—'
return getSeriesNames(series).join(', ')
}
-
- // Format promotions for display
- function formatPromotionsDisplay(promotions: number[]): string {
- if (!promotions || promotions.length === 0) return '—'
- return getPromotionNames(promotions).join(', ')
- }
@@ -160,39 +121,15 @@
onAcceptSuggestion={() => onAcceptSuggestion?.('proficiency2', suggestions?.proficiency2)}
onDismissSuggestion={() => onDismissSuggestion?.('proficiency2')}
/>
-
-
-
@@ -209,13 +146,6 @@
-
-
-
{/if}