import * as Constants from '../../constants'; import {createAction} from 'redux-starter-kit'; import {getIPCRenderer} from '../../utils'; import {confirmYesNo, displayConfirmYesNo} from './common_actions'; export const DISPLAY_CONFIGURATION = 'mounts/displayConfiguration'; export const displayConfiguration = (provider, remote) => { return { type: DISPLAY_CONFIGURATION, payload: { provider, remote, }, }; }; export const removeRemoteMount = provider => { return dispatch => { dispatch(confirmYesNo('Delete [' + provider.substr(6) + ']?')) .then(confirmed => { if (confirmed) { dispatch(removeRemoteMount2(provider)); } }); }; }; const removeRemoteMount2 = provider => { return dispatch => { const ipcRenderer = getIPCRenderer(); ipcRenderer.once(Constants.IPC_Remove_Remote_Mount_Reply, (_, arg) => { if (arg.data.Success) { dispatch(removeRemoteMount3(provider)); } }); ipcRenderer.send(Constants.IPC_Remove_Remote_Mount, provider.substr(6)); }; }; export const removeRemoteMount3 = createAction('mounts/removeRemoteMount3'); export const RESET_MOUNTS_STATE = 'mounts/resetMountsState'; export const resetMountsState = () => { return { type: RESET_MOUNTS_STATE, payload: null, } }; export const SET_ALLOW_MOUNT = 'mounts/setAllowMount'; export const setAllowMount = (provider, allow) => { return { type: SET_ALLOW_MOUNT, payload: { provider, allow } }; }; export const setAutoMountProcessed = createAction('mounts/setAutoMountProcessed'); export const setBusy = createAction('mounts/setBusy'); export const SET_MOUNT_STATE = 'mounts/setMountState'; export const setMountState = (provider, state) => { return { type: SET_MOUNT_STATE, payload: { provider, state } }; }; export const SET_MOUNTED = 'mounts/setMounted'; export const setMounted = (provider, mounted) => { return { type: SET_MOUNTED, payload: { provider, mounted } }; }; export const SET_PROVIDER_STATE = 'mounts/setProviderState'; export const setProviderState = (provider, state) => { return { type: SET_PROVIDER_STATE, payload: { provider, state } } }; export const unmountAll = completedCallback => { return (dispatch, getState) => { const ipcRenderer = getIPCRenderer(); const unmountedCallback = () => { dispatch(resetMountsState()); completedCallback(); }; ipcRenderer.once(Constants.IPC_Unmount_All_Drives_Reply, unmountedCallback); ipcRenderer.send(Constants.IPC_Unmount_All_Drives); } };