This repository has been archived on 2025-09-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
repertory-ui/src/redux/actions/mount_actions.js

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