refactor: move more things to handles instead of handleref

This commit is contained in:
Andrew Bastin
2024-05-08 22:59:03 +05:30
committed by jamesgeorge007
parent 2f2273ee2c
commit c8f0142b16
17 changed files with 398 additions and 372 deletions

View File

@@ -368,8 +368,10 @@ watch(
const newWorkspaceService = useService(NewWorkspaceService)
const activeWorkspaceName = computed(() => {
if (newWorkspaceService.activeWorkspaceHandle.value?.value.type === "ok") {
return newWorkspaceService.activeWorkspaceHandle.value?.value.data.name
const activeWorkspaceHandleRef = newWorkspaceService.activeWorkspaceHandle.value?.get()
if (activeWorkspaceHandleRef?.value.type === "ok") {
return activeWorkspaceHandleRef.value.data.name
}
return t("workspace.no_workspace")

View File

@@ -245,11 +245,6 @@ const saveRequestAs = async () => {
const collectionHandle = collectionHandleResult.right
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
return
}
const requestHandleResult = await workspaceService.createRESTRequest(
collectionHandle,
updatedRequest

View File

@@ -20,8 +20,6 @@ import { useVModel } from "@vueuse/core"
import { cloneDeep, isEqual } from "lodash-es"
import { HoppTab } from "~/services/tab"
import { HoppRESTDocument } from "~/helpers/rest/document"
import { WorkspaceRequest } from "~/services/new-workspace/workspace"
import { HandleRef } from "~/services/new-workspace/handle"
// TODO: Move Response and Request execution code to over here
@@ -43,24 +41,23 @@ watch(
tab.value.document.saveContext?.originLocation ===
"workspace-user-collection"
) {
const requestHandle = tab.value.document.saveContext.requestHandle as
| HandleRef<WorkspaceRequest>["value"]
| undefined
const requestHandleRef =
tab.value.document.saveContext.requestHandle?.get()
if (!requestHandle || requestHandle.type === "invalid") {
if (!requestHandleRef || requestHandleRef.value.type === "invalid") {
return
}
if (
!tab.value.document.isDirty &&
!isEqual(oldRequest, requestHandle?.data.request)
!isEqual(oldRequest, requestHandleRef?.value.data.request)
) {
tab.value.document.isDirty = true
}
if (
tab.value.document.isDirty &&
isEqual(oldRequest, requestHandle?.data.request)
isEqual(oldRequest, requestHandleRef?.value.data.request)
) {
tab.value.document.isDirty = false
}

View File

@@ -514,7 +514,7 @@ import { platform } from "~/platform"
import { NewWorkspaceService } from "~/services/new-workspace"
import { HandleRef } from "~/services/new-workspace/handle"
import { RESTCollectionViewRequest } from "~/services/new-workspace/view"
import { Workspace, WorkspaceRequest } from "~/services/new-workspace/workspace"
import { Workspace } from "~/services/new-workspace/workspace"
import { RESTTabService } from "~/services/tab/rest"
import IconImport from "~icons/lucide/folder-down"
import IconHelpCircle from "~icons/lucide/help-circle"
@@ -1110,12 +1110,7 @@ const selectRequest = async (requestIndexPath: string) => {
return
}
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
return
}
const collectionHandle = collectionHandleResult.right
const requestHandleResult = await workspaceService.getRequestHandle(
props.workspaceHandle,
@@ -1127,12 +1122,7 @@ const selectRequest = async (requestIndexPath: string) => {
return
}
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
return
}
const requestHandle = requestHandleResult.right
const cascadingAuthHeadersHandleResult =
await workspaceService.getRESTCollectionLevelAuthHeadersView(
@@ -1163,9 +1153,11 @@ const selectRequest = async (requestIndexPath: string) => {
if (possibleTab) {
tabs.setActiveTab(possibleTab.value.id)
} else {
const requestHandleRef = requestHandle.get()
// If not, open the request in a new tab
tabs.createNewTab({
request: requestHandle.value.data.request,
request: requestHandleRef.value.data.request,
isDirty: false,
saveContext: {
originLocation: "workspace-user-collection",
@@ -1640,12 +1632,7 @@ const dropRequest = async (payload: {
return
}
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
return
}
const requestHandle = requestHandleResult.right
const result = await workspaceService.moveRESTRequest(
requestHandle,
@@ -1667,12 +1654,7 @@ const dropRequest = async (payload: {
return
}
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
return
}
const collectionHandle = collectionHandleResult.right
const cascadingAuthHeadersHandleResult =
await workspaceService.getRESTCollectionLevelAuthHeadersView(
@@ -2098,18 +2080,20 @@ const isActiveRequest = (requestView: RESTCollectionViewRequest) => {
return false
}
// TODO: Investigate why requestHandle is available unwrapped here
const requestHandle = tabs.currentActiveTab.value.document.saveContext
.requestHandle as HandleRef<WorkspaceRequest>["value"] | undefined
const requestHandle =
tabs.currentActiveTab.value.document.saveContext.requestHandle
if (!requestHandle) {
return false
}
if (requestHandle.type === "invalid") {
const requestHandleRef = requestHandle.get()
if (requestHandleRef.value.type === "invalid") {
return false
}
return requestHandle.data.requestID === requestView.requestID
return requestHandleRef.value.data.requestID === requestView.requestID
}
const onSelectPick = (payload: Picked | null) => {

View File

@@ -26,8 +26,10 @@ const workspaceService = useService(NewWorkspaceService)
const activeWorkspaceHandle = workspaceService.activeWorkspaceHandle
const workspaceName = computed(() => {
if (activeWorkspaceHandle.value?.value.type === "ok") {
return activeWorkspaceHandle.value.value.data.name
const activeWorkspaceHandleRef = activeWorkspaceHandle.value?.get()
if (activeWorkspaceHandleRef?.value.type === "ok") {
return activeWorkspaceHandleRef.value.data.name
}
return undefined

View File

@@ -34,12 +34,13 @@ const personalWorkspaceProviderService = useService(
)
const activeWorkspaceInfo = computed(() => {
const activeWorkspace = workspaceService.activeWorkspaceHandle.value
const activeWorkspaceHandleRef =
workspaceService.activeWorkspaceHandle.value?.get()
if (activeWorkspace?.value.type === "ok") {
if (activeWorkspaceHandleRef?.value.type === "ok") {
return {
provider: activeWorkspace.value.data.providerID,
workspaceID: activeWorkspace.value.data.workspaceID,
provider: activeWorkspaceHandleRef.value.data.providerID,
workspaceID: activeWorkspaceHandleRef.value.data.workspaceID,
}
}
@@ -48,6 +49,6 @@ const activeWorkspaceInfo = computed(() => {
function selectWorkspace() {
workspaceService.activeWorkspaceHandle.value =
personalWorkspaceProviderService.getPersonalWorkspaceHandle().get()
personalWorkspaceProviderService.getPersonalWorkspaceHandle()
}
</script>

View File

@@ -37,12 +37,13 @@ const testWorkspaceProviderService = useService(TestWorkspaceProviderService)
const candidates = testWorkspaceProviderService.getWorkspaceCandidates()
const activeWorkspaceInfo = computed(() => {
const activeWorkspace = workspaceService.activeWorkspaceHandle.value
const activeWorkspaceHandle = workspaceService.activeWorkspaceHandle.value
const activeWorkspaceHandleRef = activeWorkspaceHandle?.get()
if (activeWorkspace?.value.type === "ok") {
if (activeWorkspaceHandleRef?.value.type === "ok") {
return {
provider: activeWorkspace.value.data.providerID,
workspaceID: activeWorkspace.value.data.workspaceID,
provider: activeWorkspaceHandleRef.value.data.providerID,
workspaceID: activeWorkspaceHandleRef.value.data.workspaceID,
}
}
@@ -59,6 +60,6 @@ async function selectWorkspace(workspaceID: string) {
return
}
workspaceService.activeWorkspaceHandle.value = result.right.get()
workspaceService.activeWorkspaceHandle.value = result.right
}
</script>