@redocly/asyncapi-docs
Version:
Async API docs for Redocly Realm
26 lines (23 loc) • 2.2 kB
JavaScript
import{Fragment as d,jsx as n,jsxs as r}from"react/jsx-runtime";import{useMemo as p,memo as M}from"react";import{useLocation as b}from"react-router-dom";import{useAtomValue as j}from"jotai";import f from"styled-components";import{SamplesMiddlePanel as k}from"@redocly/openapi-docs";import{useActiveSectionId as A}from"@redocly/theme/core/openapi";import{Typography as P}from"@redocly/theme/components/Typography/Typography";import{Panel as q}from"@redocly/theme/components/Panel/Panel";import{PanelBody as _}from"@redocly/theme/components/Panel/PanelBody";import{PanelHeader as g}from"@redocly/theme/components/Panel/PanelHeader";import{generateMessageReferencesHeader as Q}from"../utils/index.js";import{ChannelLinkItem as h}from"./ChannelLinkItem.js";import{definitionAtom as R}from"./../jotai-store/app.js";const K=M(({messageKey:c})=>{const i=j(R),x=b(),m=A(x,!0),s=p(()=>{var e,a;const o={exchanges:[],queues:[]};if(!i.channels)return o;for(const[y,t]of Object.entries(i.channels))if(t.messages&&t.messages[c]){const l=Object.assign(Object.assign({},t),{key:y});((a=(e=t.bindings)===null||e===void 0?void 0:e.amqp)===null||a===void 0?void 0:a.is)==="routingKey"?o.exchanges.push(l):o.queues.push(l)}return o},[c,i]),v=p(()=>Q(s),[s]);return r(S,{className:"panel-messages-samples",header:()=>n(g,{isExpandable:!1,children:v}),"data-component-name":"MessageAMQPReferences/MessageAMQPReferences",children:[!!s.exchanges.length&&r(d,{children:[n(u,{children:"Exchanges"}),s.exchanges.map(e=>n(h,{channel:e,isActive:m.endsWith(e.key)},e.key))]}),!!s.queues.length&&r(d,{children:[n(u,{children:"Queues"}),s.queues.map(e=>n(h,{channel:e,isActive:m.endsWith(e.key)},e.key))]})]})}),u=f(P)`
font-weight: var(--font-weight-semibold);
font-size: var(--font-size-sm);
padding: var(--spacing-xxs) var(--spacing-md);
`,S=f(q)`
${_} {
background-color: var(--layer-color-ontonal);
padding: 0;
display: flex;
flex-direction: column;
max-height: 206px;
overflow-y: scroll;
}
${g} {
display: flex;
justify-content: start;
align-items: center;
gap: var(--spacing-xs);
}
${k} {
padding: 0 var(--spacing-md);
}
`;export{K as MessageAMQPReferences};