Files
hoppscotch/components/graphql/TypeLink.vue
2021-03-01 09:28:14 +05:30

43 lines
783 B
Vue

<template>
<span
:class="{ 'cursor-pointer': !isScalar }"
class="font-mono font-normal text-acColor"
@click="jumpToType"
>
{{ typeString }}
</span>
</template>
<script>
import { GraphQLScalarType } from "graphql"
export default {
props: {
gqlType: null,
// (typeName: string) => void
jumpTypeCallback: Function,
},
computed: {
typeString() {
return this.gqlType.toString()
},
isScalar() {
return this.resolveRootType(this.gqlType) instanceof GraphQLScalarType
},
},
methods: {
jumpToType() {
if (this.isScalar) return
this.jumpTypeCallback(this.gqlType)
},
resolveRootType(type) {
let t = type
while (t.ofType != null) t = t.ofType
return t
},
},
}
</script>