diff --git a/frontend/components/badge-examples.js b/frontend/components/badge-examples.js index 3b7cca205d..637d3ea126 100644 --- a/frontend/components/badge-examples.js +++ b/frontend/components/badge-examples.js @@ -6,8 +6,9 @@ import resolveBadgeUrl from '../lib/badge-url' const Badge = ({ title, - previewUri, exampleUri, + previewUri, + urlPattern, documentation, baseUri, longCache, @@ -15,7 +16,14 @@ const Badge = ({ onClick, }) => { const handleClick = onClick - ? () => onClick({ title, previewUri, exampleUri, documentation }) + ? () => + onClick({ + title, + exampleUri, + previewUri, + urlPattern, + documentation, + }) : undefined const previewImage = previewUri ? ( @@ -29,7 +37,7 @@ const Badge = ({ '\u00a0' ) // non-breaking space const resolvedExampleUri = resolveBadgeUrl( - exampleUri || previewUri, + urlPattern || previewUri, baseUri, { longCache: false } ) @@ -59,8 +67,9 @@ const Badge = ({ } Badge.propTypes = { title: PropTypes.string.isRequired, - previewUri: PropTypes.string, exampleUri: PropTypes.string, + previewUri: PropTypes.string, + urlPattern: PropTypes.string, documentation: PropTypes.string, baseUri: PropTypes.string, longCache: PropTypes.bool.isRequired, @@ -101,8 +110,9 @@ Category.propTypes = { examples: PropTypes.arrayOf( PropTypes.shape({ title: PropTypes.string.isRequired, - previewUri: PropTypes.string, exampleUri: PropTypes.string, + previewUri: PropTypes.string, + urlPattern: PropTypes.string, documentation: PropTypes.string, }) ).isRequired, diff --git a/frontend/components/markup-modal.js b/frontend/components/markup-modal.js index 1e7231e73f..9941bd80db 100644 --- a/frontend/components/markup-modal.js +++ b/frontend/components/markup-modal.js @@ -10,8 +10,9 @@ export default class MarkupModal extends React.Component { static propTypes = { example: PropTypes.shape({ title: PropTypes.string.isRequired, - previewUri: PropTypes.string, exampleUri: PropTypes.string, + previewUri: PropTypes.string, + urlPattern: PropTypes.string, documentation: PropTypes.string, link: PropTypes.string, }), @@ -20,6 +21,7 @@ export default class MarkupModal extends React.Component { } state = { + exampleUri: null, badgeUri: null, link: null, style: 'flat', @@ -38,10 +40,13 @@ export default class MarkupModal extends React.Component { // Transfer `badgeUri` and `link` into state so they can be edited by the // user. - const { exampleUri, previewUri, link } = example + const { exampleUri, urlPattern, previewUri, link } = example this.setState({ + exampleUri: exampleUri + ? resolveBadgeUrl(exampleUri, baseUri || window.location.href) + : null, badgeUri: resolveBadgeUrl( - exampleUri || previewUri, + urlPattern || previewUri, baseUri || window.location.href ), link, @@ -126,6 +131,18 @@ export default class MarkupModal extends React.Component { />

+ {this.state.exampleUri && ( +

+ Example  + + + +

+ )}