diff --git a/packages/hoppscotch-app/components/collections/graphql/Collection.vue b/packages/hoppscotch-app/components/collections/graphql/Collection.vue
index e08cf6037..e8bc49f69 100644
--- a/packages/hoppscotch-app/components/collections/graphql/Collection.vue
+++ b/packages/hoppscotch-app/components/collections/graphql/Collection.vue
@@ -126,6 +126,7 @@
@add-folder="$emit('add-folder', $event)"
@edit-folder="$emit('edit-folder', $event)"
@edit-request="$emit('edit-request', $event)"
+ @duplicate-request="$emit('duplicate-request', $event)"
@select="$emit('select', $event)"
/>
+ {
+ $emit('duplicate-request', {
+ request,
+ requestIndex,
+ folderPath,
+ })
+ $refs.options.tippy().hide()
+ }
+ "
+ />
@@ -136,7 +137,11 @@
import { defineComponent } from "@nuxtjs/composition-api"
import clone from "lodash/clone"
import { useReadonlyStream } from "~/helpers/utils/composables"
-import { graphqlCollections$, addGraphqlFolder } from "~/newstore/collections"
+import {
+ graphqlCollections$,
+ addGraphqlFolder,
+ saveGraphqlRequestAs,
+} from "~/newstore/collections"
export default defineComponent({
props: {
@@ -283,6 +288,9 @@ export default defineComponent({
this.$data.editingRequest = undefined
this.$data.editingRequestIndex = undefined
},
+ duplicateRequest({ folderPath, request }) {
+ saveGraphqlRequestAs(folderPath, request)
+ },
},
})
diff --git a/packages/hoppscotch-app/components/collections/index.vue b/packages/hoppscotch-app/components/collections/index.vue
index 58bbae7ac..4e0de3396 100644
--- a/packages/hoppscotch-app/components/collections/index.vue
+++ b/packages/hoppscotch-app/components/collections/index.vue
@@ -95,6 +95,7 @@
@add-folder="addFolder($event)"
@edit-folder="editFolder($event)"
@edit-request="editRequest($event)"
+ @duplicate-request="duplicateRequest($event)"
@update-team-collections="updateTeamCollections"
@select-collection="$emit('use-collection', collection)"
@unselect-collection="$emit('remove-collection', collection)"
@@ -203,6 +204,7 @@ import {
editRESTFolder,
removeRESTRequest,
editRESTRequest,
+ saveRESTRequestAs,
} from "~/newstore/collections"
import {
useReadonlyStream,
@@ -684,6 +686,9 @@ export default defineComponent({
})
}
},
+ duplicateRequest({ folderPath, request }) {
+ saveRESTRequestAs(folderPath, request)
+ },
},
})
diff --git a/packages/hoppscotch-app/components/collections/my/Collection.vue b/packages/hoppscotch-app/components/collections/my/Collection.vue
index 2b6560aea..8a3bec94c 100644
--- a/packages/hoppscotch-app/components/collections/my/Collection.vue
+++ b/packages/hoppscotch-app/components/collections/my/Collection.vue
@@ -146,6 +146,7 @@
@add-folder="$emit('add-folder', $event)"
@edit-folder="$emit('edit-folder', $event)"
@edit-request="$emit('edit-request', $event)"
+ @duplicate-request="$emit('duplicate-request', $event)"
@select="$emit('select', $event)"
@remove-request="$emit('remove-request', $event)"
/>
@@ -162,7 +163,8 @@
:save-request="saveRequest"
:collections-type="collectionsType"
:picked="picked"
- @edit-request="editRequest($event)"
+ @edit-request="$emit('edit-request', $event)"
+ @duplicate-request="$emit('duplicate-request', $event)"
@select="$emit('select', $event)"
@remove-request="$emit('remove-request', $event)"
/>
@@ -251,9 +253,6 @@ export default defineComponent({
},
},
methods: {
- editRequest(event) {
- this.$emit("edit-request", event)
- },
toggleShowChildren() {
if (this.$props.saveRequest)
this.$emit("select", {
diff --git a/packages/hoppscotch-app/components/collections/my/Folder.vue b/packages/hoppscotch-app/components/collections/my/Folder.vue
index a11401c7f..dc2a7b726 100644
--- a/packages/hoppscotch-app/components/collections/my/Folder.vue
+++ b/packages/hoppscotch-app/components/collections/my/Folder.vue
@@ -127,6 +127,7 @@
@add-folder="$emit('add-folder', $event)"
@edit-folder="$emit('edit-folder', $event)"
@edit-request="$emit('edit-request', $event)"
+ @duplicate-request="$emit('duplicate-request', $event)"
@update-team-collections="$emit('update-team-collections')"
@select="$emit('select', $event)"
@remove-request="removeRequest"
@@ -145,6 +146,7 @@
:save-request="saveRequest"
:collections-type="collectionsType"
@edit-request="$emit('edit-request', $event)"
+ @duplicate-request="$emit('duplicate-request', $event)"
@select="$emit('select', $event)"
@remove-request="removeRequest"
/>
diff --git a/packages/hoppscotch-app/components/collections/my/Request.vue b/packages/hoppscotch-app/components/collections/my/Request.vue
index 2ef55b346..0d1647a93 100644
--- a/packages/hoppscotch-app/components/collections/my/Request.vue
+++ b/packages/hoppscotch-app/components/collections/my/Request.vue
@@ -94,6 +94,21 @@
$refs.options.tippy().hide()
"
/>
+