fix: invalidate requests opened under tabs on deleting parent collection

This commit is contained in:
jamesgeorge007
2024-02-14 20:09:26 +05:30
parent 7549e456c8
commit 3a176f6620

View File

@@ -375,6 +375,48 @@ const onRemoveRootCollection = async () => {
return
}
const activeTabs = tabs.getActiveTabs()
for (const tab of activeTabs.value) {
if (
tab.document.saveContext?.originLocation === "workspace-user-collection"
) {
const requestHandle = ref(tab.document.saveContext.requestHandle)
if (requestHandle.value.type === "invalid") {
tab.document.saveContext = null
tab.document.isDirty = true
continue
}
const requestID = requestHandle.value.data.requestID
const parentCollectionIndexPath = requestID
.split("/")
.slice(0, -1)
.join("/")
const requestIndex = parseInt(requestID.split("/").slice(-1)[0])
const parentCollection = navigateToFolderWithIndexPath(
restCollectionState.value,
parentCollectionIndexPath.split("/").map((id) => parseInt(id))
)
console.log(`Parent collection is `, parentCollection)
if (!parentCollection) {
tab.document.saveContext = null
tab.document.isDirty = true
continue
}
if (!parentCollection.requests[requestIndex]) {
tab.document.saveContext = null
tab.document.isDirty = true
}
}
}
toast.success(t("state.deleted"))
displayConfirmModal(false)
}
@@ -639,6 +681,46 @@ const onRemoveChildCollection = async () => {
return
}
const activeTabs = tabs.getActiveTabs()
for (const tab of activeTabs.value) {
if (
tab.document.saveContext?.originLocation === "workspace-user-collection"
) {
const requestHandle = ref(tab.document.saveContext.requestHandle)
if (requestHandle.value.type === "invalid") {
tab.document.saveContext = null
tab.document.isDirty = true
continue
}
const requestID = requestHandle.value.data.requestID
const parentCollectionIndexPath = requestID
.split("/")
.slice(0, -1)
.join("/")
const requestIndex = parseInt(requestID.split("/").slice(-1)[0])
const parentCollection = navigateToFolderWithIndexPath(
restCollectionState.value,
parentCollectionIndexPath.split("/").map((id) => parseInt(id))
)
if (!parentCollection) {
tab.document.saveContext = null
tab.document.isDirty = true
continue
}
if (!parentCollection.requests[requestIndex]) {
tab.document.saveContext = null
tab.document.isDirty = true
}
}
}
toast.success(t("state.deleted"))
displayConfirmModal(false)
}