var Link = ReactRouter.Link; /** * Provider Grid - displays all created providers. */ module.exports.ProviderGrid = React.createClass({ render() { var root = this.props.root; return (
{/* need a wrapper div to counteract card margins around the conatiner edges */}
{root.providers.map(function(provider) { })}
{/* add provider */}
) }, }); /** * Provider "Card" */ var ProviderCard = React.createClass({ render() { var provider = this.props.provider; var imageStyle = { background: "url(//pbs.twimg.com/profile_images/519977105543528448/HAc6jtgo_400x400.png)", backgroundSize: "cover", height: "100%" } return (
WeMo 5 accessories
) }, cardClicked() { console.log("Click!"); } }); /** * Add Provider button + dialog */ var AddProviderButton = React.createClass({ getInitialState() { return { selectedPlugin: null, selectedProvider: null, newProviderName: null } }, render() { var plugins = this.props.plugins; return (
) }, onSelectProvider(plugin, provider) { this.setState({ selectedPlugin: plugin, selectedProvider: provider }); } }); /** * Providers Dropdown */ var ProvidersDropdown = React.createClass({ render() { var plugins = this.props.plugins; var items = []; plugins.forEach(function(plugin) { items.push(
  • {plugin.name}
  • ); plugin.providers.forEach(function(provider) { items.push(
  • {provider.title}
  • ); }.bind(this)); }.bind(this)); return (
    ) }, onSelectProvider(plugin, provider) { if (this.props.onSelectProvider) this.props.onSelectProvider(plugin, provider); } }); /** * CSS Styles */ var Styles = { cardsWrapper: { margin: "-10px" }, card: { width: "150px", display: "inline-block", margin: "10px", cursor: "pointer" }, cardBody: { height: "150px", padding: "0" }, cardFooter: { fontSize:"100%", fontWeight:"bold", textAlign: "center", background: "#fafafa" }, cardTimestamp: { fontSize: "80%", fontWeight: "lighter", display: "block", }, addProvider: { margin: "30px", textAlign: "center" } };