Updated field, type and graphql page to use the new argument and typelink components
This commit is contained in:
@@ -1,6 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="field-box">
|
<div class="field-box">
|
||||||
<div class="field-title">{{ fieldString }}</div>
|
<div class="field-title">
|
||||||
|
{{ fieldName }}
|
||||||
|
<span v-if="fieldArgs.length > 0">
|
||||||
|
(
|
||||||
|
<span v-for="(field, index) in fieldArgs" :key="index">
|
||||||
|
{{ field.name }}: <typelink :gqlType="field.type" :jumpTypeCallback="jumpTypeCallback" />
|
||||||
|
<span v-if="index !== fieldArgs.length - 1">
|
||||||
|
,
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
)
|
||||||
|
</span>: <typelink :gqlType="gqlField.type" :jumpTypeCallback="jumpTypeCallback" />
|
||||||
|
</div>
|
||||||
<div class="field-desc" v-if="gqlField.description">
|
<div class="field-desc" v-if="gqlField.description">
|
||||||
{{ gqlField.description }}
|
{{ gqlField.description }}
|
||||||
</div>
|
</div>
|
||||||
@@ -8,6 +20,7 @@
|
|||||||
<div class="field-deprecated" v-if="gqlField.isDeprecated">
|
<div class="field-deprecated" v-if="gqlField.isDeprecated">
|
||||||
DEPRECATED
|
DEPRECATED
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -36,9 +49,17 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import typelink from './typelink';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
typelink: typelink
|
||||||
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
gqlField: Object
|
gqlField: Object,
|
||||||
|
|
||||||
|
jumpTypeCallback: Function
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
@@ -56,6 +77,14 @@ export default {
|
|||||||
return `${
|
return `${
|
||||||
this.gqlField.name
|
this.gqlField.name
|
||||||
}${argsString}: ${this.gqlField.type.toString()}`;
|
}${argsString}: ${this.gqlField.type.toString()}`;
|
||||||
|
},
|
||||||
|
|
||||||
|
fieldName() {
|
||||||
|
return this.gqlField.name;
|
||||||
|
},
|
||||||
|
|
||||||
|
fieldArgs() {
|
||||||
|
return this.gqlField.args || [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<div v-if="gqlType.getFields">
|
<div v-if="gqlType.getFields">
|
||||||
<h5>FIELDS</h5>
|
<h5>FIELDS</h5>
|
||||||
<div v-for="field in gqlType.getFields()" :key="field.name">
|
<div v-for="field in gqlType.getFields()" :key="field.name">
|
||||||
<gql-field :gqlField="field" />
|
<gql-field :gqlField="field" :jumpTypeCallback="jumpTypeCallback" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -36,7 +36,9 @@ export default {
|
|||||||
"gql-field": () => import("./field")
|
"gql-field": () => import("./field")
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
gqlType: {}
|
gqlType: {},
|
||||||
|
|
||||||
|
jumpTypeCallback: Function
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -288,7 +288,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<div v-if="queryFields.length > 0" class="tab">
|
<div v-if="queryFields.length > 0" class="tab">
|
||||||
<div v-for="field in queryFields" :key="field.name">
|
<div v-for="field in queryFields" :key="field.name">
|
||||||
<gql-field :gqlField="field" />
|
<gql-field :gqlField="field" :jumpTypeCallback="handleJumpToType" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -304,7 +304,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<div v-if="mutationFields.length > 0" class="tab">
|
<div v-if="mutationFields.length > 0" class="tab">
|
||||||
<div v-for="field in mutationFields" :key="field.name">
|
<div v-for="field in mutationFields" :key="field.name">
|
||||||
<gql-field :gqlField="field" />
|
<gql-field :gqlField="field" :jumpTypeCallback="handleJumpToType" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<div v-if="subscriptionFields.length > 0" class="tab">
|
<div v-if="subscriptionFields.length > 0" class="tab">
|
||||||
<div v-for="field in subscriptionFields" :key="field.name">
|
<div v-for="field in subscriptionFields" :key="field.name">
|
||||||
<gql-field :gqlField="field" />
|
<gql-field :gqlField="field" :jumpTypeCallback="handleJumpToType" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -335,8 +335,8 @@
|
|||||||
{{ $t("types") }}
|
{{ $t("types") }}
|
||||||
</label>
|
</label>
|
||||||
<div v-if="gqlTypes.length > 0" class="tab">
|
<div v-if="gqlTypes.length > 0" class="tab">
|
||||||
<div v-for="type in gqlTypes" :key="type.name">
|
<div v-for="type in gqlTypes" :key="type.name" :id="`type_${type.name}`">
|
||||||
<gql-type :gqlType="type" />
|
<gql-type :gqlType="type" :jumpTypeCallback="handleJumpToType" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -563,6 +563,24 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleJumpToType(type) {
|
||||||
|
const typesTab = document.getElementById("gqltypes-tab");
|
||||||
|
typesTab.checked = true;
|
||||||
|
|
||||||
|
const rootTypeName = this.resolveRootType(type).name;
|
||||||
|
|
||||||
|
const target = document.getElementById(`type_${rootTypeName}`);
|
||||||
|
if (target) {
|
||||||
|
target.scrollIntoView({
|
||||||
|
behavior: 'smooth'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resolveRootType(type) {
|
||||||
|
let t = type;
|
||||||
|
while (t.ofType != null) t = t.ofType;
|
||||||
|
return t;
|
||||||
|
},
|
||||||
copySchema() {
|
copySchema() {
|
||||||
this.$refs.copySchemaCode.innerHTML = this.doneButton;
|
this.$refs.copySchemaCode.innerHTML = this.doneButton;
|
||||||
const aux = document.createElement("textarea");
|
const aux = document.createElement("textarea");
|
||||||
|
|||||||
Reference in New Issue
Block a user