diff --git a/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue b/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue
index 2b427934..6d8135de 100644
--- a/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue
+++ b/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue
@@ -85,6 +85,7 @@
@@ -446,6 +447,11 @@ function resetProgress() {
localStorage.removeItem(`modpack-permissions-${props.project.id}`)
localStorage.removeItem(`modpack-permissions-index-${props.project.id}`)
+
+ sessionStorage.removeItem(`modpack-permissions-data-${props.project.id}`)
+ sessionStorage.removeItem(`modpack-permissions-permanent-no-${props.project.id}`)
+ sessionStorage.removeItem(`modpack-permissions-updated-${props.project.id}`)
+
modpackPermissionsComplete.value = false
modpackJudgements.value = {}
@@ -1331,6 +1337,11 @@ function clearProjectLocalStorage() {
localStorage.removeItem(`moderation-actions-${props.project.slug}`)
localStorage.removeItem(`moderation-inputs-${props.project.slug}`)
localStorage.removeItem(`moderation-stage-${props.project.slug}`)
+
+ sessionStorage.removeItem(`modpack-permissions-data-${props.project.id}`)
+ sessionStorage.removeItem(`modpack-permissions-permanent-no-${props.project.id}`)
+ sessionStorage.removeItem(`modpack-permissions-updated-${props.project.id}`)
+
actionStates.value = {}
}
diff --git a/apps/frontend/src/components/ui/moderation/checklist/ModpackPermissionsFlow.vue b/apps/frontend/src/components/ui/moderation/checklist/ModpackPermissionsFlow.vue
index 8cdbdbe1..4f96a4b7 100644
--- a/apps/frontend/src/components/ui/moderation/checklist/ModpackPermissionsFlow.vue
+++ b/apps/frontend/src/components/ui/moderation/checklist/ModpackPermissionsFlow.vue
@@ -161,6 +161,7 @@ import { computed, onMounted, ref, watch } from 'vue'
const props = defineProps<{
projectId: string
+ projectUpdated: string
modelValue?: ModerationJudgements
}>()
@@ -202,6 +203,10 @@ const permanentNoFiles = useSessionStorage(
},
},
)
+const cachedProjectUpdated = useSessionStorage(
+ `modpack-permissions-updated-${props.projectId}`,
+ null,
+)
const currentIndex = ref(0)
const fileApprovalTypes: ModerationModpackPermissionApprovalType[] = [
@@ -363,11 +368,13 @@ async function fetchModPackData(): Promise {
}
modPackData.value = sortedData
+ cachedProjectUpdated.value = props.projectUpdated
persistAll()
} catch (error) {
console.error('Failed to fetch modpack data:', error)
modPackData.value = []
permanentNoFiles.value = []
+ cachedProjectUpdated.value = props.projectUpdated
persistAll()
}
}
@@ -457,7 +464,10 @@ function getJudgements(): ModerationJudgements {
onMounted(() => {
loadPersistedData()
- if (!modPackData.value) {
+
+ const isStale = cachedProjectUpdated.value !== props.projectUpdated
+
+ if (!modPackData.value || isStale) {
fetchModPackData()
}
})
@@ -477,6 +487,7 @@ watch(
() => props.projectId,
() => {
clearPersistedData()
+ cachedProjectUpdated.value = null
loadPersistedData()
if (!modPackData.value) {
fetchModPackData()