diff --git a/packages/hoppscotch-common/src/components/graphql/Request.vue b/packages/hoppscotch-common/src/components/graphql/Request.vue index fe157282e..0732cdfe1 100644 --- a/packages/hoppscotch-common/src/components/graphql/Request.vue +++ b/packages/hoppscotch-common/src/components/graphql/Request.vue @@ -3,16 +3,13 @@ class="sticky top-0 z-10 flex flex-shrink-0 space-x-2 overflow-x-auto bg-primary p-4" >
- connection.state === "CONNECTED") const url = computed({ - get: () => tabs.currentActiveTab.value?.document.request.url ?? "", + get: () => + tabs.currentActiveTab.value?.document.request.url || + getDefaultGQLRequest().url, set: (value) => { tabs.currentActiveTab.value!.document.request.url = value }, @@ -118,7 +118,9 @@ watch( tabs.currentActiveTab, (newVal) => { if (newVal) { - lastTwoUrls.value.push(newVal.document.request.url) + lastTwoUrls.value.push( + newVal.document.request.url ?? getDefaultGQLRequest().url + ) if (lastTwoUrls.value.length > 2) { lastTwoUrls.value.shift() } diff --git a/packages/hoppscotch-common/src/components/http/Request.vue b/packages/hoppscotch-common/src/components/http/Request.vue index aa792aca3..0d84d4f82 100644 --- a/packages/hoppscotch-common/src/components/http/Request.vue +++ b/packages/hoppscotch-common/src/components/http/Request.vue @@ -54,9 +54,10 @@ > { - if (newEndpoint.value === "" || /^\s+$/.test(newEndpoint.value)) { + if (/^\s+$/.test(newEndpoint.value)) { toast.error(`${t("empty.endpoint")}`) return } - ensureMethodInEndpoint() + if (newEndpoint.value) ensureMethodInEndpoint() loading.value = true @@ -348,7 +349,20 @@ const newSendRequest = async () => { workspaceType: workspaceService.currentWorkspace.value.type, }) - const [cancel, streamPromise] = runRESTRequest$(tab) + const finalTab = ref({ + ...tab.value, + document: { + ...tab.value.document, + request: { + ...tab.value.document.request, + endpoint: + tab.value.document.request.endpoint || + getDefaultRESTRequest().endpoint, + }, + }, + }) + + const [cancel, streamPromise] = runRESTRequest$(finalTab) const streamResult = await streamPromise requestCancelFunc.value = cancel @@ -472,8 +486,13 @@ const fetchingShareLink = ref(false) const shareRequest = () => { if (currentUser.value) { + const finalRequest = { + ...tab.value.document.request, + endpoint: + tab.value.document.request.endpoint || getDefaultRESTRequest().endpoint, + } invokeAction("share.request", { - request: tab.value.document.request, + request: finalRequest, }) } else { invokeAction("modals.login.toggle") @@ -513,11 +532,17 @@ const saveRequest = () => { showSaveRequestModal.value = true return } - if (saveCtx.originLocation === "user-collection") { - const req = tab.value.document.request + const req = tab.value.document.request + + const finalRequest = { + ...req, + endpoint: req.endpoint.trim() || getDefaultRESTRequest().endpoint, + } + + if (saveCtx.originLocation === "user-collection") { try { - editRESTRequest(saveCtx.folderPath, saveCtx.requestIndex, req) + editRESTRequest(saveCtx.folderPath, saveCtx.requestIndex, finalRequest) tab.value.document.isDirty = false @@ -534,8 +559,6 @@ const saveRequest = () => { saveRequest() } } else if (saveCtx.originLocation === "team-collection") { - const req = tab.value.document.request - // TODO: handle error case (NOTE: overwriteRequestTeams is async) try { platform.analytics?.logEvent({ @@ -549,7 +572,7 @@ const saveRequest = () => { requestID: saveCtx.requestID, data: { title: req.name, - request: JSON.stringify(req), + request: JSON.stringify(finalRequest), }, })().then((result) => { if (E.isLeft(result)) {