Skip to content

Instantly share code, notes, and snippets.

@dwighthouse
Last active November 16, 2015 21:03
Show Gist options
  • Save dwighthouse/4867852dece48229d88c to your computer and use it in GitHub Desktop.
Save dwighthouse/4867852dece48229d88c to your computer and use it in GitHub Desktop.
InsertBetween.js - Inserts stuff between other stuff in React context
'use strict';
var React = require('react');
// Inserts stuff between other stuff in React context
// Usage
// <InsertBetween separator={', '}>
// <span>1</span>
// <span>2</span>
// <span>3</span>
// <span>4</span>
// <span>5</span>
// </InsertBetween>
//
// <InsertBetween separator={<br />}>
// <span>1</span>
// <span>2</span>
// <span>3</span>
// <span>4</span>
// <span>5</span>
// </InsertBetween>
//
// <InsertBetween separator={<span>, <AddTagBetween>+</AddTagBetween> </span>}>
// <Tag>1</Tag>
// <Tag>2</Tag>
// <Tag>3</Tag>
// <Tag>4</Tag>
// <Tag>5</Tag>
// </InsertBetween>
var InsertBetween = React.createClass({
propTypes: {
separator: React.PropTypes.node.isRequired
},
render: function() {
var separator = this.props.separator || null;
// React.Children.map removes need to specify keys and flattens output
return (
<span>
{React.Children.map(this.props.children, function(child, index) {
return [
index === 0 ? null : separator,
child
];
})}
</span>
);
}
});
module.exports = InsertBetween;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment