@redocly/asyncapi-docs
Version:
Async API docs for Redocly Realm
29 lines (28 loc) • 1.49 kB
JavaScript
import{jsx as e,jsxs as n}from"react/jsx-runtime";import a from"styled-components";import{Portal as l,DatabaseIcon as c,KafkaIcon as p,RabbitMQIcon as d,useModalScrollLock as f,CopyButton as m}from"@redocly/theme";import{useState as x}from"react";import{ServerModal as g}from"./ServerModal";import{MoreDetailsButton as u}from"./common";const D=({server:t,showDetails:s})=>{const[i,o]=x(!1);return f(i),n(h,{"data-component-name":"Server/Server",children:[n(y,{children:[e(v,{children:(r=>{switch(r){case"kafka":return e(p,{size:"20px"});case"amqp":return e(d,{size:"20px"});default:return e(c,{size:"20px"})}})(t.value.protocol)}),e(b,{children:t.key})]}),n(S,{children:[t.value.host,e(m,{data:t.value.host},t.value.host)]}),s&&e(I,{onClick:()=>o(!0),children:e(u,{expanded:!1})}),i&&e(l,{mountId:"api-content",children:e(g,{server:t,onClose:()=>o(!1)})})]})},h=a.div`
display: flex;
flex-direction: column;
gap: var(--spacing-xxs);
padding: var(--spacing-sm) var(--spacing-md);
`,v=a.div`
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
`,y=a.div`
display: flex;
flex-direction: row;
align-items: center;
gap: var(--spacing-xxs);
`,S=a.span`
padding-left: var(--spacing-lg);
height: 24px;
display: flex;
align-items: center;
justify-content: space-between;
`,b=a.span`
font-weight: var(--font-weight-semibold);
text-transform: capitalize;
`,I=a.div`
padding-left: var(--spacing-lg);
`;export{D as Server};