43 lines
1012 B
JavaScript
43 lines
1012 B
JavaScript
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>
|
|
);
|
|
|
|
}
|
|
|
|
});
|