UNPKG

@redocly/graphql-docs

Version:

Redocly GraphQL docs

2 lines (1 loc) 2.04 kB
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{isInputObjectType as u}from"graphql";import{memo as y,useMemo as g}from"react";import{useThemeHooks as h}from"@redocly/theme";import{MiddleSection as T,RightSection as w,useStore as I}from"../../app/index.js";import{isFieldsType as j}from"../../schema/index.js";import{TypeExample as F}from"../../examples/index.js";import{Markdown as b}from"../../markdown/index.js";import{useSettings as x}from"../../settings/index.js";import{Box as s}from"../../common/index.js";import{FieldsGroupHeader as l}from"../../common/components/Headers.js";import{SectionHeader as S}from"../../common/components/SectionHeader.js";import{Annotation as k,FieldList as M,FieldView as R,GroupTypeList as d,ReferenceList as q,RequiresScopesButton as B}from"../components/index.js";function H({name:i}){const n=I(),{markdown:c}=x(),{useTranslate:a}=h(),{translate:o}=a(),{type:t,references:p,implementingTypes:m}=g(()=>({type:n?.getType(i),references:n?.getTypeReferences(i),implementingTypes:n?.getImplementingTypes(i)}),[i,n]);return j(t)?r(s,{"data-testid":t.name,direction:"row",wrap:"wrap",gap:"64px",children:[r(T,{"data-testid":"object-item",children:[e(S,{name:t.name,splitWbr:!0}),e(k,{"data-testid":"object-description",children:e(b,{rawMarkdown:t.description,parser:c?.parser})}),e(B,{type:t,isItem:!0}),Object.values(t.getFields()).length?e(s,{direction:"column",wrap:"wrap",children:e(M,{fields:Object.values(t.getFields()),renderField:f=>e(R,{...f,parentType:t})})}):null,!u(t)&&t.getInterfaces().length?r(s,{direction:"column",children:[e(l,{"data-testid":"implements-interfaces",children:o("graphql.implementedInterfaces","Implements interfaces")}),e(d,{types:t.getInterfaces()})]}):null,m?.length?r(s,{direction:"column",children:[e(l,{"data-testid":"implemented-by",children:o("graphql.implementedBy","Implemented by")}),e(d,{types:m})]}):null]}),r(w,{"data-testid":"right-section",children:[e(F,{type:t}),p?.length?e(q,{references:p}):null]})]}):null}const K=y(H);export{K as FieldsTypeItem};