50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
var Util = require('../../util');
|
|
var path = require('path');
|
|
|
|
// Action types
|
|
var LOAD_DESKTOP_APPS = exports.LOAD_PROFILE = 'LOAD_DESKTOP_APPS';
|
|
var LOAD_DESKTOP_APPS_SUCCESS = exports.LOAD_DESKTOP_APPS_SUCCESS = 'LOAD_DESKTOP_APPS_SUCCESS';
|
|
var LOAD_DESKTOP_APPS_FAILED = exports.LOAD_DESKTOP_APPS_FAILED = 'LOAD_DESKTOP_APPS_FAILED';
|
|
var MOVE_PROFILE_ITEM = exports.MOVE_PROFILE_ITEM = 'MOVE_PROFILE_ITEM';
|
|
var ADD_PROFILE_ITEM = exports.ADD_PROFILE_ITEM = 'ADD_PROFILE_ITEM';
|
|
|
|
// Actions creators
|
|
|
|
exports.loadDesktopApps = function() {
|
|
return function(dispatch, getState) {
|
|
|
|
var baseDirs = global.process.env.XDG_DATA_DIRS.split(':').map(function(baseDir){
|
|
return path.join(baseDir, 'applications');
|
|
});
|
|
|
|
dispatch({ type: LOAD_DESKTOP_APPS });
|
|
|
|
return Util.DesktopApps.loadAllDesktopFiles(baseDirs)
|
|
.then(function(desktopApps) {
|
|
dispatch({ type: LOAD_DESKTOP_APPS_SUCCESS, desktopApps: desktopApps });
|
|
})
|
|
.catch(function(err) {
|
|
dispatch({ type: LOAD_DESKTOP_APPS_FAILED, error: err });
|
|
})
|
|
;
|
|
|
|
};
|
|
};
|
|
|
|
|
|
exports.moveProfileItem = function(movedItem, targetItem) {
|
|
return {
|
|
type: 'MOVE_PROFILE_ITEM',
|
|
movedItem: movedItem,
|
|
targetItem: targetItem
|
|
};
|
|
};
|
|
|
|
exports.addProfileItem = function(newItem, targetItem) {
|
|
return {
|
|
type: 'ADD_PROFILE_ITEM',
|
|
newItem: newItem,
|
|
targetItem: targetItem
|
|
};
|
|
};
|