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 }; };