fix: invalidate requests opened under tabs on deleting parent collection
This commit is contained in:
@@ -375,6 +375,48 @@ const onRemoveRootCollection = async () => {
|
|||||||
return
|
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"))
|
toast.success(t("state.deleted"))
|
||||||
displayConfirmModal(false)
|
displayConfirmModal(false)
|
||||||
}
|
}
|
||||||
@@ -639,6 +681,46 @@ const onRemoveChildCollection = async () => {
|
|||||||
return
|
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"))
|
toast.success(t("state.deleted"))
|
||||||
displayConfirmModal(false)
|
displayConfirmModal(false)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user