import React from 'react' import PropTypes from 'prop-types' import styled from 'styled-components' import { badgeUrlFromPattern, staticBadgeUrl, } from '../../core/badge-urls/make-badge-url' import { examplePropType } from '../lib/service-definitions/example-prop-types' import { Badge } from './common' import { StyledCode } from './snippet' const ExampleTable = styled.table` min-width: 50%; margin: auto; th, td { text-align: left; } ` const ClickableTh = styled.th` cursor: pointer; ` const ClickableCode = styled(StyledCode)` cursor: pointer; ` function Example({ baseUrl, onClick, exampleData }) { const { title, example, preview } = exampleData const { pattern, namedParams, queryParams } = example const exampleUrl = badgeUrlFromPattern({ baseUrl, pattern, namedParams, queryParams, }) let previewUrl if (preview.buildFromExample) { previewUrl = exampleUrl } else { const { label, message, color, style, namedLogo } = preview previewUrl = staticBadgeUrl({ baseUrl, label, message, color, style, namedLogo, }) } const handleClick = () => onClick(exampleData) return ( {title}: {exampleUrl} ) } Example.propTypes = { exampleData: examplePropType.isRequired, baseUrl: PropTypes.string, onClick: PropTypes.func.isRequired, } export default function BadgeExamples({ examples, baseUrl, onClick }) { return ( {examples.map(exampleData => ( ))} ) } BadgeExamples.propTypes = { examples: PropTypes.arrayOf(examplePropType).isRequired, baseUrl: PropTypes.string, onClick: PropTypes.func.isRequired, }