var React = require('react'); var Util = require('../util'); var LazyLoad = require('./mixins/lazy-load'); var LOADING_ICON = 'img/hourglass.svg'; module.exports = React.createClass({ mixins: [LazyLoad], getInitialState: function() { return { icon: LOADING_ICON, currentTheme: undefined }; }, onInViewport: function() { this.updateIconIfInViewport(); }, updateIconIfInViewport: function() { var currentTheme = this.state.currentTheme; var newTheme = this.props.theme; if( !this.isInViewport() || newTheme === currentTheme ) return; this.setState({ icon: LOADING_ICON, currentTheme: newTheme }); var desktopEntry = this.props.desktopEntry; this._findIcon(desktopEntry.Icon, newTheme); }, componentDidUpdate: function() { this.updateIconIfInViewport(); }, render: function() { var desktopEntry = this.props.desktopEntry; var label = desktopEntry.Name; var category = desktopEntry.Categories; return (