UNPKG

@redocly/asyncapi-docs

Version:

Async API docs for Redocly Realm

30 lines (28 loc) 3.93 kB
import{jsx as i,jsxs as s}from"react/jsx-runtime";import{useMemo as t,memo as A}from"react";import l from"styled-components";import{useAtomValue as h}from"jotai";import{Row as f,SamplesMiddlePanel as b,OperationSamplesPanel as C,Section as L,CustomBadges as _}from"@redocly/openapi-docs";import{LayoutVariant as I}from"@redocly/config";import{H2 as w}from"@redocly/theme/components/Typography/H2";import{LinkIcon as B}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{CurveAutoColonIcon as D}from"@redocly/theme/icons/CurveAutoColonIcon/CurveAutoColonIcon";import{combineUrls as H}from"@redocly/theme/core/openapi";import{PageActions as M}from"@redocly/theme/components/PageActions/PageActions";import{layoutAtom as N,routingBasePathAtom as T,definitionAtom as W}from"../jotai-store/app.js";import{TagWithIcon as V,Information as $,ActionTag as z,ShareLink as E}from"./common/index.js";import{ChannelParameters as K}from"./ChannelParameters.js";import{ServersListPanel as R}from"./ServersListPanel.js";import{ChannelBinding as U}from"./ChannelBinding.js";import{MessageSection as q}from"./MessageSection.js";import{OperationSection as k}from"./OperationSection.js";import{useProtocolLabels as F}from"../hooks/index.js";const be=A(({item:r})=>{var p;const d=h(N),j=h(T),a=h(W),c=d===I.STACKED,e=(p=a.channels)===null||p===void 0?void 0:p[r.id],{getProtocolLabel:x}=F(e?.bindings),m=t(()=>Object.entries(a.servers||{}).map(([n,o])=>({key:n,value:o})).filter(({value:n})=>{var o;return(o=e?.servers)===null||o===void 0?void 0:o.some(P=>P.host===n.host)}),[e?.servers,a.servers]),S=t(()=>Object.entries(e?.bindings||{}).map(([n,o])=>({key:n,value:o})),[e?.bindings]),y=t(()=>Object.entries(e?.messages||{}).map(([n,o])=>({key:n,value:o})),[e?.messages]),v=t(()=>r.items.filter(n=>{var o;return n.action==="send"&&((o=a.operations)===null||o===void 0?void 0:o[n.id])}),[a.operations,r.items]),u=t(()=>r.items.filter(n=>{var o;return n.action==="receive"&&((o=a.operations)===null||o===void 0?void 0:o[n.id])}),[a.operations,r.items]),O=t(()=>{var n;return(n=e?.["x-badges"])===null||n===void 0?void 0:n.map(o=>Object.assign(Object.assign({},o),{position:o.position||"after"}))},[e]);if(!e)return null;const g=H(j,r.dataSectionId);return s(G,{children:[s(J,{sectionId:g,children:[i(f,{layout:d,children:i(b,{className:"api-info",isStacked:c,children:i(z,{color:x("channel").toLowerCase(),children:x("channel")})})}),s(f,{layout:d,children:[s(b,{className:"api-info",isStacked:c,children:[s(X,{children:[s(Q,{children:[i(_,{badges:O,children:e?.title||e?.address||r.id}),i(E,{to:g,"aria-label":`link to ${r.label}`})]}),i(M,{pageSlug:g})]}),e.address&&s(V,{icon:i(D,{size:"14px"}),children:["name: ",i("span",{children:e.address})]}),i($,{summary:e.summary,description:e.description,externalDocs:e.externalDocs}),e.parameters&&i(K,{parameters:e.parameters,id:r.link})]}),s(C,{isStacked:c,className:"panel-container-response-samples",children:[!!m?.length&&i(R,{servers:m,hideHeader:!0}),!!S.length&&i(U,{binding:S[0]})]})]}),y.length>0?i(q,{messages:y,id:r.link}):null]}),v.length>0?i(k,{operations:v,type:"send",id:r.link}):null,u.length>0&&v.length>0?i(f,{layout:d,children:i(b,{isStacked:c,children:i(Y,{})})}):null,u.length>0?i(k,{operations:u,type:"receive",id:r.link}):null]})}),G=l.div` width: 100%; &:not(:last-child) { border-bottom: 1px solid var(--border-color-primary); } `,J=l(L)` padding: var(--spacing-xxl) 0 var(--spacing-base); scroll-margin-top: calc( var(--navbar-height) + var(--banner-height) - var(--spacing-base) ) !important; `,Q=l(w)` margin: 0 0 var(--spacing-xs) 0; display: flex; align-items: center; gap: var(--spacing-xs); flex-wrap: wrap; &:hover { ${B} { opacity: 1; visibility: visible; } } `,X=l.div` display: flex; align-items: flex-start; `,Y=l.div` border-bottom: 1px solid var(--border-color-secondary); `;export{be as ChannelSection};