diff --git a/src/routes/(app)/database/artifact-skills/+page.svelte b/src/routes/(app)/database/artifact-skills/+page.svelte new file mode 100644 index 00000000..ed22ba35 --- /dev/null +++ b/src/routes/(app)/database/artifact-skills/+page.svelte @@ -0,0 +1,345 @@ + + + + + + +
+
+
+ +
+ + {#if skillsQuery.isLoading} +
Loading skills...
+ {:else if skillsQuery.isError} +
Failed to load skills
+ {:else} + {#each [{ key: 'group_i', label: 'Group I — Slots 1 & 2', skills: groupedSkills.group_i }, { key: 'group_ii', label: 'Group II — Slot 3', skills: groupedSkills.group_ii }, { key: 'group_iii', label: 'Group III — Slot 4', skills: groupedSkills.group_iii }] as group (group.key)} + {#if group.skills.length > 0} +
+

{group.label}

+
+ + + + + + + + + + + + {#each group.skills as skill (skill.id)} + handleRowClick(skill)} class="clickable"> + + + + + + + {/each} + +
ModDisplay NameGame NamePolarityBase Values
+ {skill.modifier} + +
+ {skill.name.en} + {#if skill.name.ja} + {skill.name.ja} + {/if} +
+
+
+ {#if skill.gameName?.en || skill.gameName?.ja} + {skill.gameName?.en || '—'} + {#if skill.gameName?.ja} + {skill.gameName.ja} + {/if} + {:else} + Not set + {/if} +
+
+ + {skill.polarity} + + + + {skill.baseValues.map((v) => v ?? '?').join(', ')} + +
+
+
+ {/if} + {/each} + + + {/if} +
+
+ + diff --git a/src/routes/(app)/database/artifact-skills/[id]/+page.svelte b/src/routes/(app)/database/artifact-skills/[id]/+page.svelte new file mode 100644 index 00000000..2a60416a --- /dev/null +++ b/src/routes/(app)/database/artifact-skills/[id]/+page.svelte @@ -0,0 +1,416 @@ + + + + + + +
+ {#if skillQuery.isLoading} +
Loading skill...
+ {:else if skillQuery.isError} +
Failed to load skill
+ {:else if skill} +
+
+
+
{skill.modifier}
+
+

{skill.name.en}

+
+ {skillGroupOptions.find(o => o.value === getSkillGroupNumber(skill.skillGroup))?.label} +
+
+
+
+ + +
+
+ + {#if saveSuccess || saveError} +
+ {#if saveSuccess} + Changes saved successfully! + {/if} + {#if saveError} + {saveError} + {/if} +
+ {/if} + +
+ + + + + + + + + + + + + + + + + + + {#each [0, 1, 2, 3, 4] as index} + + { + const newValues = [...editData.baseValues] + const val = e.currentTarget.value + newValues[index] = val === '' ? null : parseFloat(val) + editData.baseValues = newValues + }} + placeholder="—" + /> + + {/each} + + + + + + +
+
+ {:else} +
+

Skill Not Found

+

The skill you're looking for could not be found.

+ +
+ {/if} +
+ +