feat: graphql response schema ui (#4310)

feat: data schema added for graphql response
This commit is contained in:
Anwarul Islam
2024-08-30 18:08:01 +06:00
committed by GitHub
parent 9ca899a28a
commit 15efbc887c
2 changed files with 46 additions and 27 deletions

View File

@@ -46,7 +46,7 @@
>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('app.copy_interface_type')"
:title="t('action.more')"
:icon="IconMore"
/>
<template #content="{ hide }">
@@ -57,15 +57,14 @@
@keyup.escape="hide()"
>
<HoppSmartItem
v-for="(language, index) in interfaceLanguages"
:key="index"
:label="language"
:icon="
copiedInterfaceLanguage === language
? copyInterfaceIcon
: IconCopy
:label="t('response.generate_data_schema')"
:icon="IconNetwork"
@click="
() => {
invokeAction('response.schema.toggle')
hide()
}
"
@click="runCopyInterface(language)"
/>
</div>
</template>
@@ -95,19 +94,17 @@
<script setup lang="ts">
import IconWrapText from "~icons/lucide/wrap-text"
import IconCopy from "~icons/lucide/copy"
import IconNetwork from "~icons/lucide/network"
import IconMore from "~icons/lucide/more-horizontal"
import { computed, reactive, ref } from "vue"
import { useCodemirror } from "@composables/codemirror"
import { useI18n } from "@composables/i18n"
import { defineActionHandler } from "~/helpers/actions"
import { defineActionHandler, invokeAction } from "~/helpers/actions"
import { getPlatformSpecialKey as getSpecialKey } from "~/helpers/platformutils"
import { GQLResponseEvent } from "~/helpers/graphql/connection"
import { useNestedSetting } from "~/composables/settings"
import { toggleNestedSetting } from "~/newstore/settings"
import interfaceLanguages from "~/helpers/utils/interfaceLanguages"
import {
useCopyInterface,
useCopyResponse,
useDownloadResponse,
} from "~/composables/lens-actions"
@@ -158,20 +155,11 @@ useCodemirror(
)
const { copyIcon, copyResponse } = useCopyResponse(responseString)
const { copyInterfaceIcon, copyInterface } = useCopyInterface(responseString)
const { downloadIcon, downloadResponse } = useDownloadResponse(
"application/json",
responseString
)
const copiedInterfaceLanguage = ref("")
const runCopyInterface = (language: string) => {
copyInterface(language).then(() => {
copiedInterfaceLanguage.value = language
})
}
defineActionHandler(
"response.file.download",
() => downloadResponse(),