redoc/src/components/ApiLogo/ApiLogo.tsx

21 lines
656 B
TypeScript
Raw Normal View History

import { OpenAPIInfo } from '../../types';
2017-10-12 00:01:37 +03:00
import * as React from 'react';
import { observer } from 'mobx-react';
import { LogoImgEl } from './styled.elements';
const LinkWrap = url => Component => <a href={url}>{Component}</a>;
@observer
export class ApiLogo extends React.Component<{ info: OpenAPIInfo }> {
2017-10-12 00:01:37 +03:00
render() {
const { info } = this.props;
2017-10-12 00:01:37 +03:00
const logoInfo = info['x-logo'];
if (!logoInfo || !logoInfo.url) return null;
const logo = (
<LogoImgEl src={logoInfo.url} style={{ backgroundColor: logoInfo.backgroundColor }} />
);
return info.contact && info.contact.url ? LinkWrap(info.contact.url)(logo) : logo;
}
}