diff --git a/src/lib/components/ui/DetailsHeader.svelte b/src/lib/components/ui/DetailsHeader.svelte index 00ebf4bd..30cd0e75 100644 --- a/src/lib/components/ui/DetailsHeader.svelte +++ b/src/lib/components/ui/DetailsHeader.svelte @@ -11,7 +11,7 @@ type: 'character' | 'summon' | 'weapon' item: any // The character/summon/weapon object image: string - onEdit?: () => void // Optional edit handler + editUrl?: string // URL to navigate to for editing (view mode) showEdit?: boolean // Whether to show the edit button editMode?: boolean // Whether currently in edit mode onSave?: () => void // Save handler @@ -23,7 +23,7 @@ type, item, image, - onEdit, + editUrl, showEdit = false, editMode = false, onSave, @@ -124,8 +124,8 @@ > {isSaving ? 'Saving...' : 'Save'} - {:else} - + {:else if editUrl} + {/if} {/if} diff --git a/src/lib/features/database/detail/DetailScaffold.svelte b/src/lib/features/database/detail/DetailScaffold.svelte index 937120c4..2190d99c 100644 --- a/src/lib/features/database/detail/DetailScaffold.svelte +++ b/src/lib/features/database/detail/DetailScaffold.svelte @@ -1,104 +1,142 @@
- {})} - onSave={onSave ?? (() => {})} - onCancel={onCancel ?? (() => {})} - {isSaving} - /> + {})} + onCancel={onCancel ?? (() => {})} + {isSaving} + /> - {#if saveSuccess || saveError} -
- {#if saveSuccess} - Changes saved successfully! - {/if} - {#if saveError} - {saveError} - {/if} -
- {/if} + {#if showTabs && !editMode} +
+ + Info + Images + Raw Data + +
+ {/if} - {@render children?.()} + {#if saveSuccess || saveError} +
+ {#if saveSuccess} + Changes saved successfully! + {/if} + {#if saveError} + {saveError} + {/if} +
+ {/if} + + {@render children?.()}
diff --git a/src/lib/features/database/detail/tabs/EntityImagesTab.svelte b/src/lib/features/database/detail/tabs/EntityImagesTab.svelte new file mode 100644 index 00000000..c568e4a1 --- /dev/null +++ b/src/lib/features/database/detail/tabs/EntityImagesTab.svelte @@ -0,0 +1,77 @@ + + + + +
+
+ {#each images as image} +
+ + {image.label} + + {image.label} +
+ {/each} +
+
+ + diff --git a/src/lib/features/database/detail/tabs/EntityRawDataTab.svelte b/src/lib/features/database/detail/tabs/EntityRawDataTab.svelte new file mode 100644 index 00000000..ed25ede0 --- /dev/null +++ b/src/lib/features/database/detail/tabs/EntityRawDataTab.svelte @@ -0,0 +1,113 @@ + + + + +
+ {#if isLoading} +

Loading raw data...

+ {:else} + {#if wikiRaw} +
+

Wiki Raw

+
{wikiRaw}
+
+ {/if} + + {#if gameRawEn || gameRawJp} +
+
+

Game Raw

+ + EN + JP + +
+ {#if formattedGameRaw} +
{formattedGameRaw}
+ {:else} +

No {selectedLang.toUpperCase()} data available

+ {/if} +
+ {/if} + + {#if !wikiRaw && !gameRawEn && !gameRawJp} +

No raw data available

+ {/if} + {/if} +
+ + diff --git a/src/routes/(app)/database/characters/[id]/+page.svelte b/src/routes/(app)/database/characters/[id]/+page.svelte index 71f8381d..77daaaef 100644 --- a/src/routes/(app)/database/characters/[id]/+page.svelte +++ b/src/routes/(app)/database/characters/[id]/+page.svelte @@ -3,29 +3,44 @@
@@ -203,45 +125,52 @@ item={character} image={getCharacterGridImage(character)} showEdit={canEdit} - {editMode} - {isSaving} - {saveSuccess} - {saveError} - onEdit={toggleEditMode} - onSave={saveChanges} - onCancel={toggleEditMode} + editUrl={canEdit ? editUrl : undefined} + {currentTab} + onTabChange={handleTabChange} > -
- - - - + {#if currentTab === 'info'} +
+ + + + - {#if character?.id && character?.granblueId} - - {/if} + {#if character?.id && character?.granblueId} + + {/if} - {#if !editMode && relatedQuery.data?.length} - - - - {/if} -
+ {#if relatedQuery.data?.length} + + + + {/if} +
+ {:else if currentTab === 'images'} + + {:else if currentTab === 'raw'} + + {/if} {:else}
diff --git a/src/routes/(app)/database/summons/[id]/+page.svelte b/src/routes/(app)/database/summons/[id]/+page.svelte index 71988ba5..ae1b9167 100644 --- a/src/routes/(app)/database/summons/[id]/+page.svelte +++ b/src/routes/(app)/database/summons/[id]/+page.svelte @@ -3,30 +3,42 @@
@@ -240,108 +95,17 @@ item={summon} image={getSummonGridImage(summon)} showEdit={canEdit} - {editMode} - {isSaving} - {saveSuccess} - {saveError} - onEdit={toggleEditMode} - onSave={saveChanges} - onCancel={toggleEditMode} + editUrl={canEdit ? editUrl : undefined} + {currentTab} + onTabChange={handleTabChange} > -
- - - - + {#if currentTab === 'info'} +
+ + + + - {#if editMode} - - - - - - - - - - - - {#if editData.flb} - - {/if} - {#if editData.ulb} - - {/if} - {#if editData.transcendence} - - {/if} - - - - - - - - - {/if} - - {#if !editMode}

Call Effect

@@ -383,8 +147,17 @@
{/if}
- {/if} -
+
+ {:else if currentTab === 'images'} + + {:else if currentTab === 'raw'} + + {/if} {:else}
diff --git a/src/routes/(app)/database/weapons/[id]/+page.svelte b/src/routes/(app)/database/weapons/[id]/+page.svelte index d335d395..a94737fc 100644 --- a/src/routes/(app)/database/weapons/[id]/+page.svelte +++ b/src/routes/(app)/database/weapons/[id]/+page.svelte @@ -3,30 +3,42 @@
@@ -252,119 +95,17 @@ item={weapon} image={getWeaponImage(weapon)} showEdit={canEdit} - {editMode} - {isSaving} - {saveSuccess} - {saveError} - onEdit={toggleEditMode} - onSave={saveChanges} - onCancel={toggleEditMode} + editUrl={canEdit ? editUrl : undefined} + {currentTab} + onTabChange={handleTabChange} > -
- - - - + {#if currentTab === 'info'} +
+ + + + - {#if editMode} - - - - - - - - - - - - {#if editData.flb} - - {/if} - {#if editData.ulb} - - {/if} - {#if editData.transcendence} - - {/if} - - - - - - - - - - - - - {/if} - - {#if !editMode}

Skills

@@ -382,8 +123,17 @@ {/if}
- {/if} -
+
+ {:else if currentTab === 'images'} + + {:else if currentTab === 'raw'} + + {/if} {:else}