| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 | 
							- <template>
 
-   <div class="flex flex-col" :class="[{ 'bg-primaryLight': dragging }]">
 
-     <div
 
-       class="flex items-center group"
 
-       draggable="true"
 
-       @dragstart="dragStart"
 
-       @dragover.stop
 
-       @dragleave="dragging = false"
 
-       @dragend="dragging = false"
 
-     >
 
-       <span
 
-         class="cursor-pointer flex px-2 w-16 items-center justify-center truncate"
 
-         @click="!doc ? selectRequest() : {}"
 
-       >
 
-         <SmartIcon
 
-           class="svg-icons"
 
-           :class="{ 'text-green-500': isSelected }"
 
-           :name="isSelected ? 'check-circle' : 'file'"
 
-         />
 
-       </span>
 
-       <span
 
-         class="cursor-pointer flex flex-1 min-w-0 py-2 pr-2 transition group-hover:text-secondaryDark"
 
-         @click="!doc ? selectRequest() : {}"
 
-       >
 
-         <span class="truncate"> {{ request.name }} </span>
 
-       </span>
 
-       <div class="flex">
 
-         <ButtonSecondary
 
-           v-if="!savingMode"
 
-           v-tippy="{ theme: 'tooltip' }"
 
-           svg="rotate-ccw"
 
-           :title="$t('action.restore')"
 
-           class="hidden group-hover:inline-flex"
 
-           @click.native="!doc ? selectRequest() : {}"
 
-         />
 
-         <span>
 
-           <tippy
 
-             ref="options"
 
-             interactive
 
-             trigger="click"
 
-             theme="popover"
 
-             arrow
 
-           >
 
-             <template #trigger>
 
-               <ButtonSecondary
 
-                 v-tippy="{ theme: 'tooltip' }"
 
-                 :title="$t('action.more')"
 
-                 svg="more-vertical"
 
-               />
 
-             </template>
 
-             <SmartItem
 
-               svg="edit"
 
-               :label="`${$t('action.edit')}`"
 
-               @click.native="
 
-                 () => {
 
-                   $emit('edit-request', {
 
-                     request,
 
-                     requestIndex,
 
-                     folderPath,
 
-                   })
 
-                   $refs.options.tippy().hide()
 
-                 }
 
-               "
 
-             />
 
-             <SmartItem
 
-               svg="copy"
 
-               :label="`${$t('action.duplicate')}`"
 
-               @click.native="
 
-                 () => {
 
-                   $emit('duplicate-request', {
 
-                     request,
 
-                     requestIndex,
 
-                     folderPath,
 
-                   })
 
-                   $refs.options.tippy().hide()
 
-                 }
 
-               "
 
-             />
 
-             <SmartItem
 
-               svg="trash-2"
 
-               color="red"
 
-               :label="`${$t('action.delete')}`"
 
-               @click.native="
 
-                 () => {
 
-                   confirmRemove = true
 
-                   $refs.options.tippy().hide()
 
-                 }
 
-               "
 
-             />
 
-           </tippy>
 
-         </span>
 
-       </div>
 
-     </div>
 
-     <SmartConfirmModal
 
-       :show="confirmRemove"
 
-       :title="`${$t('confirm.remove_request')}`"
 
-       @hide-modal="confirmRemove = false"
 
-       @resolve="removeRequest"
 
-     />
 
-   </div>
 
- </template>
 
- <script lang="ts">
 
- import { defineComponent, PropType } from "@nuxtjs/composition-api"
 
- import { HoppGQLRequest, makeGQLRequest } from "@hoppscotch/data"
 
- import { removeGraphqlRequest } from "~/newstore/collections"
 
- import { setGQLSession } from "~/newstore/GQLSession"
 
- export default defineComponent({
 
-   props: {
 
-     // Whether the object is selected (show the tick mark)
 
-     picked: { type: Object, default: null },
 
-     // Whether the request is being saved (activate 'select' event)
 
-     savingMode: { type: Boolean, default: false },
 
-     request: { type: Object as PropType<HoppGQLRequest>, default: () => {} },
 
-     folderPath: { type: String, default: null },
 
-     requestIndex: { type: Number, default: null },
 
-     doc: Boolean,
 
-   },
 
-   data() {
 
-     return {
 
-       dragging: false,
 
-       confirmRemove: false,
 
-     }
 
-   },
 
-   computed: {
 
-     isSelected(): boolean {
 
-       return (
 
-         this.picked &&
 
-         this.picked.pickedType === "gql-my-request" &&
 
-         this.picked.folderPath === this.folderPath &&
 
-         this.picked.requestIndex === this.requestIndex
 
-       )
 
-     },
 
-   },
 
-   methods: {
 
-     pick() {
 
-       this.$emit("select", {
 
-         picked: {
 
-           pickedType: "gql-my-request",
 
-           folderPath: this.folderPath,
 
-           requestIndex: this.requestIndex,
 
-         },
 
-       })
 
-     },
 
-     selectRequest() {
 
-       if (this.savingMode) {
 
-         this.pick()
 
-       } else {
 
-         setGQLSession({
 
-           request: makeGQLRequest({
 
-             name: this.$props.request.name,
 
-             url: this.$props.request.url,
 
-             query: this.$props.request.query,
 
-             headers: this.$props.request.headers,
 
-             variables: this.$props.request.variables,
 
-           }),
 
-           schema: "",
 
-           response: "",
 
-         })
 
-       }
 
-     },
 
-     dragStart({ dataTransfer }: any) {
 
-       this.dragging = !this.dragging
 
-       dataTransfer.setData("folderPath", this.folderPath)
 
-       dataTransfer.setData("requestIndex", this.requestIndex)
 
-     },
 
-     removeRequest() {
 
-       // Cancel pick if the picked request is deleted
 
-       if (
 
-         this.picked &&
 
-         this.picked.pickedType === "gql-my-request" &&
 
-         this.picked.folderPath === this.folderPath &&
 
-         this.picked.requestIndex === this.requestIndex
 
-       ) {
 
-         this.$emit("select", { picked: null })
 
-       }
 
-       removeGraphqlRequest(this.folderPath, this.requestIndex)
 
-       this.$toast.success(`${this.$t("state.deleted")}`)
 
-     },
 
-   },
 
- })
 
- </script>
 
 
  |