Skip to content

Commit 64eff41

Browse files
committed
feat: retain selection page state after script entry.
1 parent e2edadb commit 64eff41

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

src/stores/fgo.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export const useFgoStore = defineStore('fgo', () => {
2727
const currentWarId = ref<number | null>(savedWarId ? Number(savedWarId) : null)
2828
const currentWar = ref<WarSchema.War | null>(null)
2929
const currentQuestId = ref<number | null>(null)
30+
const expandedQuestId = ref<number | null>(null)
3031
const currentQuest = ref<QuestWithScripts | null>(null)
3132
const isLoading = ref(false)
3233
const error = ref<string | null>(null)
@@ -37,6 +38,8 @@ export const useFgoStore = defineStore('fgo', () => {
3738
} else {
3839
localStorage.removeItem('fgo-war-id')
3940
}
41+
// Reset expanded quest when war changes
42+
expandedQuestId.value = null
4043
})
4144

4245
const fetchWars = async () => {
@@ -100,6 +103,7 @@ export const useFgoStore = defineStore('fgo', () => {
100103
currentWarId,
101104
currentWar,
102105
currentQuestId,
106+
expandedQuestId,
103107
currentQuest,
104108
isLoading,
105109
error,

src/views/SelectorView.vue

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@
4242
<div class="quest-header" @click="toggleQuest(quest.id)">
4343
<span class="quest-name">{{ quest.name }}</span>
4444
<span class="quest-id">(ID: {{ quest.id }})</span>
45-
<span class="expand-icon">{{ expandedQuests.has(quest.id) ? '▼' : '▶' }}</span>
45+
<span class="expand-icon">{{ store.expandedQuestId === quest.id ? '▼' : '▶' }}</span>
4646
</div>
4747

4848
<!-- Show phases and scripts when expanded -->
49-
<div v-if="expandedQuests.has(quest.id)" class="quest-details">
49+
<div v-if="store.expandedQuestId === quest.id" class="quest-details">
5050
<div v-if="quest.phaseScripts && quest.phaseScripts.length > 0">
5151
<div v-for="phaseScript in quest.phaseScripts" :key="phaseScript.phase" class="phase-group">
5252
<div class="phase-header">Phase {{ phaseScript.phase }}</div>
@@ -86,7 +86,6 @@ const store = useFgoStore()
8686
const router = useRouter()
8787
const selectedRegion = ref<RegionType>(store.region)
8888
89-
const expandedQuests = ref<Set<number>>(new Set())
9089
const containerRef = ref<HTMLElement | null>(null)
9190
9291
watch(() => store.currentWarId, () => {
@@ -115,10 +114,10 @@ const backToWars = () => {
115114
}
116115
117116
const toggleQuest = (questId: number) => {
118-
if (expandedQuests.value.has(questId)) {
119-
expandedQuests.value.delete(questId)
117+
if (store.expandedQuestId === questId) {
118+
store.expandedQuestId = null
120119
} else {
121-
expandedQuests.value.add(questId)
120+
store.expandedQuestId = questId
122121
}
123122
}
124123

0 commit comments

Comments
 (0)