refactor: move tab saveContext resolution associated with actions on collections to be based on request handles

This commit is contained in:
jamesgeorge007
2024-04-30 16:42:57 +05:30
parent fe3adeeb17
commit 7ca94a99b7

View File

@@ -120,7 +120,7 @@ export function resolveSaveContextOnCollectionReorder(
const newCollectionID = affectedPaths.get(collectionID) const newCollectionID = affectedPaths.get(collectionID)
const newRequestID = `${newCollectionID}/${ const newRequestID = `${newCollectionID}/${
tab.value.document.saveContext.requestID.split("/").slice(-1)[0] requestID.split("/").slice(-1)[0]
}` }`
tab.value.document.saveContext.requestID = newRequestID tab.value.document.saveContext.requestID = newRequestID
@@ -329,7 +329,7 @@ export function updateInheritedPropertiesForAffectedRequests(
"workspace-user-collection" "workspace-user-collection"
) { ) {
const requestHandle = ref(tab.value.document.saveContext.requestHandle) const requestHandle = ref(tab.value.document.saveContext.requestHandle)
if (requestHandle.value.type === "ok") { if (requestHandle.value?.type === "ok") {
contextPath = requestHandle.value.data.collectionID contextPath = requestHandle.value.data.collectionID
} }
} else { } else {
@@ -382,17 +382,49 @@ function resetSaveContextForAffectedRequests(folderPath: string) {
return false return false
} }
const collectionID = tab.document.saveContext.requestID const requestHandle = tab.document.saveContext.requestHandle as
.split("/") | HandleRef<WorkspaceRequest>["value"]
.slice(0, -1) | undefined
.join("/")
if (!requestHandle || requestHandle.type === "invalid") {
return false
}
const { requestID } = requestHandle.data
const collectionID = requestID.split("/").slice(0, -1).join("/")
return collectionID.startsWith(folderPath) return collectionID.startsWith(folderPath)
}) })
for (const tab of tabs) { for (const tab of tabs) {
tab.value.document.saveContext = null if (tab.value.document.saveContext?.originLocation === "user-collection") {
tab.value.document.isDirty = true tab.value.document.saveContext = null
tab.value.document.isDirty = true
return
}
if (
tab.value.document.saveContext?.originLocation ===
"workspace-user-collection"
) {
const requestHandle = tab.value.document.saveContext.requestHandle as
| HandleRef<WorkspaceRequest>["value"]
| undefined
if (!requestHandle || requestHandle.type === "invalid") {
return
}
// @ts-expect-error - Removing the `data` property
delete requestHandle.data
// @ts-expect-error - Updating the type
requestHandle.type = "invalid"
// @ts-expect-error - Specifying the reason
requestHandle.reason = "REQUEST_INVALIDATED"
}
} }
} }