var React = require('react');
var Util = require('../util');
var DesktopAppItem = require('./desktop-app-item.jsx');
var path = require('path');

module.exports = React.createClass({

  getInitialState: function() {
    return {
      desktopFiles: []
    };
  },

  componentDidMount: function() {
    // Load system desktop apps
    var baseDirs = global.process.env.XDG_DATA_DIRS.split(':').map(function(baseDir){
      return path.join(baseDir, 'applications');
    });

    Util.DesktopApps.loadAllDesktopFiles('/usr/share/applications')
      .then(function(desktopFiles) {
        this.setState({ desktopFiles: desktopFiles });
      }.bind(this))
    ;
  },

  render: function() {

    var items = this.state.desktopFiles.map(function(desktopFile, i) {
      var desktopEntry = desktopFile.content['Desktop Entry'];
      return <DesktopAppItem key={desktopFile.path} desktopEntry={desktopEntry} />;
    });

    return (
      <ul className="desktop-apps">
        {items}
      </ul>
    );

  }

});
