feat(common): create new requests without siphoning data from the previous one (#4909)
Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com>
This commit is contained in:
parent
bedb0ffdb6
commit
24fbe3e01a
4 changed files with 9 additions and 224 deletions
|
|
@ -15,23 +15,6 @@
|
|||
input-styles="floating-input"
|
||||
@submit="addRequest"
|
||||
/>
|
||||
<HoppButtonSecondary
|
||||
v-if="canDoRequestNameGeneration"
|
||||
v-tippy="{ theme: 'tooltip' }"
|
||||
:icon="IconSparkle"
|
||||
:disabled="isGenerateRequestNamePending"
|
||||
class="rounded-md"
|
||||
:class="{
|
||||
'animate-pulse': isGenerateRequestNamePending,
|
||||
}"
|
||||
:title="t('ai_experiments.generate_request_name')"
|
||||
@click="
|
||||
async () => {
|
||||
await generateRequestName(props.requestContext)
|
||||
submittedFeedback = false
|
||||
}
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
|
|
@ -50,64 +33,15 @@
|
|||
@click="hideModal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="lastTraceID && !submittedFeedback"
|
||||
class="flex items-center gap-2"
|
||||
>
|
||||
<p>{{ t("ai_experiments.feedback_cta_request_name") }}</p>
|
||||
<template v-if="!isSubmitFeedbackPending">
|
||||
<HoppButtonSecondary
|
||||
:icon="IconThumbsUp"
|
||||
outline
|
||||
@click="
|
||||
async () => {
|
||||
if (lastTraceID) {
|
||||
await submitFeedback('positive', lastTraceID)
|
||||
submittedFeedback = true
|
||||
}
|
||||
}
|
||||
"
|
||||
/>
|
||||
<HoppButtonSecondary
|
||||
:icon="IconThumbsDown"
|
||||
outline
|
||||
@click="
|
||||
async () => {
|
||||
if (lastTraceID) {
|
||||
await submitFeedback('negative', lastTraceID)
|
||||
submittedFeedback = true
|
||||
}
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
<template v-else>
|
||||
<HoppSmartSpinner />
|
||||
</template>
|
||||
</div>
|
||||
<div v-if="submittedFeedback">
|
||||
<p>{{ t("ai_experiments.feedback_thank_you") }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</HoppSmartModal>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from "vue"
|
||||
import { useI18n } from "@composables/i18n"
|
||||
import { useToast } from "@composables/toast"
|
||||
import { useService } from "dioc/vue"
|
||||
import { RESTTabService } from "~/services/tab/rest"
|
||||
import {
|
||||
useRequestNameGeneration,
|
||||
useSubmitFeedback,
|
||||
} from "~/composables/ai-experiments"
|
||||
import { HoppRESTRequest } from "@hoppscotch/data"
|
||||
import IconSparkle from "~icons/lucide/sparkles"
|
||||
import IconThumbsUp from "~icons/lucide/thumbs-up"
|
||||
import IconThumbsDown from "~icons/lucide/thumbs-down"
|
||||
import { ref } from "vue"
|
||||
|
||||
const toast = useToast()
|
||||
const t = useI18n()
|
||||
|
|
@ -116,12 +50,10 @@ const props = withDefaults(
|
|||
defineProps<{
|
||||
show: boolean
|
||||
loadingState: boolean
|
||||
requestContext: HoppRESTRequest | null
|
||||
}>(),
|
||||
{
|
||||
show: false,
|
||||
loadingState: false,
|
||||
requestContext: null,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -132,37 +64,6 @@ const emit = defineEmits<{
|
|||
|
||||
const editingName = ref("")
|
||||
|
||||
const {
|
||||
generateRequestName,
|
||||
isGenerateRequestNamePending,
|
||||
canDoRequestNameGeneration,
|
||||
lastTraceID,
|
||||
} = useRequestNameGeneration(editingName)
|
||||
|
||||
watch(
|
||||
() => props.show,
|
||||
(newVal) => {
|
||||
if (!newVal) {
|
||||
submittedFeedback.value = false
|
||||
lastTraceID.value = null
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const submittedFeedback = ref(false)
|
||||
const { submitFeedback, isSubmitFeedbackPending } = useSubmitFeedback()
|
||||
|
||||
const tabs = useService(RESTTabService)
|
||||
watch(
|
||||
() => props.show,
|
||||
(show) => {
|
||||
if (show) {
|
||||
if (tabs.currentActiveTab.value.document.type === "request")
|
||||
editingName.value = tabs.currentActiveTab.value.document.request.name
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const addRequest = () => {
|
||||
if (props.loadingState) {
|
||||
return
|
||||
|
|
|
|||
|
|
@ -15,23 +15,6 @@
|
|||
input-styles="floating-input"
|
||||
@submit="addRequest"
|
||||
/>
|
||||
<HoppButtonSecondary
|
||||
v-if="canDoRequestNameGeneration"
|
||||
v-tippy="{ theme: 'tooltip' }"
|
||||
:icon="IconSparkle"
|
||||
:disabled="isGenerateRequestNamePending"
|
||||
class="rounded-md"
|
||||
:class="{
|
||||
'animate-pulse': isGenerateRequestNamePending,
|
||||
}"
|
||||
:title="t('ai_experiments.generate_request_name')"
|
||||
@click="
|
||||
async () => {
|
||||
await generateRequestName(props.requestContext)
|
||||
submittedFeedback = false
|
||||
}
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
|
|
@ -49,45 +32,6 @@
|
|||
@click="hideModal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="lastTraceID && !submittedFeedback"
|
||||
class="flex items-center gap-2"
|
||||
>
|
||||
<p>{{ t("ai_experiments.feedback_cta_request_name") }}</p>
|
||||
<template v-if="!isSubmitFeedbackPending">
|
||||
<HoppButtonSecondary
|
||||
:icon="IconThumbsUp"
|
||||
outline
|
||||
@click="
|
||||
async () => {
|
||||
if (lastTraceID) {
|
||||
await submitFeedback('positive', lastTraceID)
|
||||
submittedFeedback = true
|
||||
}
|
||||
}
|
||||
"
|
||||
/>
|
||||
<HoppButtonSecondary
|
||||
:icon="IconThumbsDown"
|
||||
outline
|
||||
@click="
|
||||
async () => {
|
||||
if (lastTraceID) {
|
||||
await submitFeedback('negative', lastTraceID)
|
||||
submittedFeedback = true
|
||||
}
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
<template v-else>
|
||||
<HoppSmartSpinner />
|
||||
</template>
|
||||
</div>
|
||||
<div v-if="submittedFeedback">
|
||||
<p>{{ t("ai_experiments.feedback_thank_you") }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</HoppSmartModal>
|
||||
|
|
@ -96,28 +40,14 @@
|
|||
<script setup lang="ts">
|
||||
import { useI18n } from "@composables/i18n"
|
||||
import { useToast } from "@composables/toast"
|
||||
import { HoppGQLRequest } from "@hoppscotch/data"
|
||||
import { useService } from "dioc/vue"
|
||||
import { ref, watch } from "vue"
|
||||
|
||||
import {
|
||||
useRequestNameGeneration,
|
||||
useSubmitFeedback,
|
||||
} from "~/composables/ai-experiments"
|
||||
import { GQLTabService } from "~/services/tab/graphql"
|
||||
import IconSparkle from "~icons/lucide/sparkles"
|
||||
import IconThumbsDown from "~icons/lucide/thumbs-down"
|
||||
import IconThumbsUp from "~icons/lucide/thumbs-up"
|
||||
import { ref } from "vue"
|
||||
|
||||
const toast = useToast()
|
||||
const t = useI18n()
|
||||
|
||||
const tabs = useService(GQLTabService)
|
||||
|
||||
const props = defineProps<{
|
||||
show: boolean
|
||||
folderPath?: string
|
||||
requestContext: HoppGQLRequest | null
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
|
|
@ -133,35 +63,6 @@ const emit = defineEmits<{
|
|||
|
||||
const editingName = ref("")
|
||||
|
||||
const {
|
||||
generateRequestName,
|
||||
isGenerateRequestNamePending,
|
||||
canDoRequestNameGeneration,
|
||||
lastTraceID,
|
||||
} = useRequestNameGeneration(editingName)
|
||||
|
||||
watch(
|
||||
() => props.show,
|
||||
(newVal) => {
|
||||
if (!newVal) {
|
||||
submittedFeedback.value = false
|
||||
lastTraceID.value = null
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const submittedFeedback = ref(false)
|
||||
const { submitFeedback, isSubmitFeedbackPending } = useSubmitFeedback()
|
||||
|
||||
watch(
|
||||
() => props.show,
|
||||
(show) => {
|
||||
if (show) {
|
||||
editingName.value = tabs.currentActiveTab.value?.document.request.name
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const addRequest = () => {
|
||||
if (!editingName.value) {
|
||||
toast.error(`${t("error.empty_req_name")}`)
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@
|
|||
<CollectionsGraphqlAddRequest
|
||||
:show="showModalAddRequest"
|
||||
:folder-path="editingFolderPath"
|
||||
:request-context="requestContext"
|
||||
@add-request="onAddRequest($event)"
|
||||
@hide-modal="displayModalAddRequest(false)"
|
||||
/>
|
||||
|
|
@ -182,7 +181,11 @@ import { platform } from "~/platform"
|
|||
import { useService } from "dioc/vue"
|
||||
import { GQLTabService } from "~/services/tab/graphql"
|
||||
import { computed } from "vue"
|
||||
import { HoppCollection, HoppGQLRequest } from "@hoppscotch/data"
|
||||
import {
|
||||
getDefaultGQLRequest,
|
||||
HoppCollection,
|
||||
HoppGQLRequest,
|
||||
} from "@hoppscotch/data"
|
||||
import { Picked } from "~/helpers/types/HoppPicked"
|
||||
import { HoppInheritedProperty } from "~/helpers/types/HoppInheritedProperties"
|
||||
import { updateInheritedPropertiesForAffectedRequests } from "~/helpers/collection/collection"
|
||||
|
|
@ -330,10 +333,6 @@ const filteredCollections = computed(() => {
|
|||
return filteredCollections
|
||||
})
|
||||
|
||||
const requestContext = computed(() => {
|
||||
return tabs.currentActiveTab.value.document.request
|
||||
})
|
||||
|
||||
const displayModalAdd = (shouldDisplay: boolean) => {
|
||||
showModalAdd.value = shouldDisplay
|
||||
}
|
||||
|
|
@ -397,7 +396,7 @@ const duplicateCollection = ({
|
|||
|
||||
const onAddRequest = ({ name, path }: { name: string; path: string }) => {
|
||||
const newRequest = {
|
||||
...tabs.currentActiveTab.value.document.request,
|
||||
...getDefaultGQLRequest(),
|
||||
name,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,7 +137,6 @@
|
|||
<CollectionsAddRequest
|
||||
:show="showModalAddRequest"
|
||||
:loading-state="modalLoadingState"
|
||||
:request-context="requestContext"
|
||||
@add-request="onAddRequest"
|
||||
@hide-modal="displayModalAddRequest(false)"
|
||||
/>
|
||||
|
|
@ -824,24 +823,9 @@ const addRequest = (payload: {
|
|||
displayModalAddRequest(true)
|
||||
}
|
||||
|
||||
const requestContext = computed(() => {
|
||||
return tabs.currentActiveTab.value.document.type === "request"
|
||||
? tabs.currentActiveTab.value.document.request
|
||||
: null
|
||||
})
|
||||
|
||||
const onAddRequest = (requestName: string) => {
|
||||
const request =
|
||||
tabs.currentActiveTab.value.document.type === "request"
|
||||
? tabs.currentActiveTab.value.document.request
|
||||
: getDefaultRESTRequest()
|
||||
|
||||
if (!request) return
|
||||
|
||||
const newRequest = {
|
||||
...(tabs.currentActiveTab.value.document.type === "request"
|
||||
? cloneDeep(tabs.currentActiveTab.value.document.request)
|
||||
: getDefaultRESTRequest()),
|
||||
...getDefaultRESTRequest(),
|
||||
name: requestName,
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue