@redocly/graphql-docs
Version:
Redocly GraphQL docs
2 lines (1 loc) • 1.47 kB
JavaScript
import{jsx as t,jsxs as s}from"react/jsx-runtime";import{useState as i}from"react";import{useThemeHooks as c}from"@redocly/theme";import{HiddenNavigationAnchor as T}from"../../../shared/index.js";import{useIsFieldExpandable as y,useShowExpandableBorder as w}from"../utils/is-field-expandable.js";import{ViewNested as m}from"../../common/components/ViewNested.js";import{getNavigationIdProp as f}from"../../navigation/hooks/utils.js";import{TypeView as F}from"./TypeView.js";import{Arguments as j}from"./Arguments.js";import{FieldRow as q}from"./FieldRow.js";import{ExpandableFieldBody as v,FieldWrapper as A}from"./styled.js";function l({field:e,contrast:a,fieldExpandLevel:r,parentType:g}){const p=r+1,[n,h]=i(!1),[d,x]=i(!1),{useTranslate:u}=c(),{translate:o}=u();return s("div",{children:[t(T,{...f("")}),s(A,{showBorder:w(e,r,{expandedTypes:n}),children:[t(q,{fieldExpandLevel:r,field:e,parentType:g}),y(e,r)?s(v,{contrast:!a,children:[!!e.args?.length&&t(m,{expanded:d,level:r,expandText:o("graphql.arguments.show","Show arguments"),collapseText:o("graphql.arguments.hide","Hide arguments"),args:e.args,onClick:()=>x(!d),children:t(j,{args:e.args,fieldExpandLevel:p,renderField:l})}),t(m,{expanded:n,level:r,expandText:o("graphql.returnTypes.show","Show return type"),collapseText:o("graphql.returnTypes.hide","Hide return type"),onClick:()=>h(!n),children:t(F,{type:e.type,contrast:!a,fieldExpandLevel:p,renderField:l})})]}):null]})]})}export{l as FieldView};