107 lines
2.6 KiB
JavaScript
107 lines
2.6 KiB
JavaScript
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);
|
|
}
|
|
}; |