UNPKG

@redocly/graphql-docs

Version:

Redocly GraphQL docs

2 lines (1 loc) 1.54 kB
import{jsx as t,jsxs as o}from"react/jsx-runtime";import{memo as l,useMemo as c}from"react";import{isUnionType as f}from"graphql";import{useThemeHooks as u}from"@redocly/theme";import{MiddleSection as h,RightSection as g,useStore as y}from"../../app/index.js";import{Markdown as T}from"../../markdown/index.js";import{useSettings as k}from"../../settings/index.js";import{ShareLink as w}from"../../navigation/index.js";import{Box as s}from"../../common/index.js";import{FieldsGroupHeader as x,StyledItemHeader as S}from"../../common/components/Headers.js";import{Annotation as j,GroupTypeList as b,ReferenceList as I}from"../components/index.js";import{useItemLink as L}from"../hooks/use-item-link.js";function M({name:r}){const i=y(),{markdown:a}=k(),{useTranslate:p}=u(),{translate:m}=p(),d=L(r),{union:e,references:n}=c(()=>({union:i?.getType(r),references:i?.getTypeReferences(r)}),[r,i]);return f(e)?o(s,{"data-testid":e.name,direction:"row",wrap:"wrap",gap:"64px",children:[o(h,{"data-testid":e.name,children:[o(S,{"data-testid":"title",children:[t(w,{to:d,"aria-label":`link to ${e.name}`}),e.name]}),t(j,{"data-testid":"object-description",children:t(T,{rawMarkdown:e.description,parser:a?.parser})}),e.getTypes().length?o(s,{"data-testid":r,direction:"column",children:[t(x,{"data-testid":"return-type-title",children:m("graphql.possibleTypes","Possible types")}),t(b,{types:e.getTypes()})]}):null]}),n?.length?t(g,{"data-testid":"right-section",children:t(I,{references:n})}):null]}):null}const v=l(M);export{v as UnionItem};