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)) {