import React from 'react'; import './MountItem.css'; import {connect} from 'react-redux'; import DropDown from '../../../components/UI/DropDown/DropDown'; import Button from '../../../components/UI/Button/Button'; import Loader from 'react-loader-spinner'; import Text from '../../../components/UI/Text/Text'; import Grid from '../../../components/UI/Grid/Grid'; import configureImage from '../../../assets/images/configure.png'; import RootElem from '../../../components/UI/RootElem/RootElem'; import { displayConfiguration, removeRemoteMount, setProviderState } from '../../../redux/actions/mount_actions'; import { displaySkynetExport, displaySkynetImport, } from '../../../redux/actions/skynet_actions' import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import { faTrashAlt} from '@fortawesome/free-solid-svg-icons'; import CheckBox from '../../../components/UI/CheckBox/CheckBox'; const mapStateToProps = (state, ownProps) => { return { MState: state.mounts.MountState[ownProps.provider], Platform: state.common.Platform, PState: state.mounts.ProviderState[ownProps.provider] }; }; const mapDispatchToProps = dispatch => { return { displayConfiguration: (provider, remote, s3) => dispatch(displayConfiguration(provider, remote, s3)), displaySkynetExport: display => dispatch(displaySkynetExport(display)), displaySkynetImport: display => dispatch(displaySkynetImport(display)), removeRemoteMount: provider => dispatch(removeRemoteMount(provider)), setProviderState: (provider, state) => dispatch(setProviderState(provider, state)), } }; export default connect(mapStateToProps, mapDispatchToProps)(props => { const handleAutoMountChanged = e => { const state = { ...props.PState, AutoMount: e.target.checked, }; props.setProviderState(props.provider, state); }; const handleAutoRestartChanged = e => { const state = { ...props.PState, AutoRestart: e.target.checked, }; props.setProviderState(props.provider, state); }; let secondRow = 6; const pointer = {cursor: props.MState.AllowMount ? 'pointer' : 'no-drop'}; const configButton = ( props.displayConfiguration(props.provider, props.remote, props.s3) : e => { e.preventDefault(); }} src={configureImage} style={{padding: 0, border: 0, margin: 0, ...pointer}} width={'16px'}/> ); let inputColumnSpan; let inputControls; if (props.Platform === 'win32') { inputColumnSpan = 20; const index = props.MState.DriveLetters.indexOf(props.PState.MountLocation); inputControls = = 0 ? props.PState.MountLocation : ''}/>; } else { inputColumnSpan = 64; inputControls = []; let key = 0; inputControls.push(( )); inputControls.push(( )); } const buttonDisplay = props.MState.AllowMount ? (props.MState.Mounted ? 'Unmount' : 'Mount') : ; const actionsDisplay = ( ); const autoMountControl = ( ); const autoRestartControl = ( ); let removeControl; if (props.remote) { const removeDisabled = !props.MState.AllowMount || props.MState.Mounted; const removeStyle = { cursor: removeDisabled ? 'no-drop' : 'pointer' }; const handleRemoveMount = () => { if (!removeDisabled) { props.removeRemoteMount(props.provider); } }; removeControl = ( dimensions.columns - 6} row={secondRow + 3}> ); } return (
{configButton} {((props.provider === 'Skynet') && (props.MState.Mounted)) ? ( props.displaySkynetExport(true) : e => {e.preventDefault();}} rowSpan={5} style={{...pointer, fontWeight: 'normal'}}> Export ) : null} {((props.provider === 'Skynet') && (props.MState.Mounted)) ? ( props.displaySkynetImport(true) : e => {e.preventDefault();}} rowSpan={5} style={{...pointer, fontWeight: 'normal'}}> Import ) : null} {inputControls} {actionsDisplay} {autoMountControl} {autoRestartControl} {removeControl}
); });