fix: modpack content modal toggle state (#6532)

Fix modpack content modal toggle state
This commit is contained in:
Arthur
2026-06-29 14:04:55 +00:00
committed by GitHub
parent b59f327b04
commit 204bd52a5a
@@ -313,7 +313,7 @@ function bulkDisable() {
} }
function show(contentItems: ContentItem[]) { function show(contentItems: ContentItem[]) {
items.value = contentItems items.value = contentItems.map((item) => ({ ...item }))
searchQuery.value = '' searchQuery.value = ''
selectedFilters.value = [] selectedFilters.value = []
selectedIds.value = [] selectedIds.value = []
@@ -358,7 +358,7 @@ function getState(): ModpackContentModalState | null {
} }
async function restore(state: ModpackContentModalState) { async function restore(state: ModpackContentModalState) {
items.value = state.items items.value = state.items.map((item) => ({ ...item }))
searchQuery.value = state.searchQuery searchQuery.value = state.searchQuery
selectedFilters.value = state.selectedFilters selectedFilters.value = state.selectedFilters
loading.value = false loading.value = false
@@ -381,16 +381,15 @@ function updateItem(fileName: string, updates: Partial<ContentItem> & { disabled
} }
const { disabled: _, ...itemUpdates } = updates const { disabled: _, ...itemUpdates } = updates
if (Object.keys(itemUpdates).length > 0) { if (Object.keys(itemUpdates).length > 0) {
const index = items.value.findIndex((i) => i.file_name === fileName) items.value = items.value.map((item) =>
if (index !== -1) { item.file_name === fileName ? { ...item, ...itemUpdates } : item,
items.value[index] = { ...items.value[index], ...itemUpdates } )
}
} }
} }
function setItems(contentItems: ContentItem[]) { function setItems(contentItems: ContentItem[]) {
const contentFileNames = new Set(contentItems.map((item) => item.file_name)) const contentFileNames = new Set(contentItems.map((item) => item.file_name))
items.value = contentItems items.value = contentItems.map((item) => ({ ...item }))
selectedIds.value = selectedIds.value.filter((id) => contentFileNames.has(id)) selectedIds.value = selectedIds.value.filter((id) => contentFileNames.has(id))
disabledIds.value = new Set([...disabledIds.value].filter((id) => contentFileNames.has(id))) disabledIds.value = new Set([...disabledIds.value].filter((id) => contentFileNames.has(id)))
loading.value = false loading.value = false