diff --git a/app/renderer/components/Session/CapabilityControl.js b/app/renderer/components/Session/CapabilityControl.js index a61419089..8cd976d47 100644 --- a/app/renderer/components/Session/CapabilityControl.js +++ b/app/renderer/components/Session/CapabilityControl.js @@ -4,27 +4,30 @@ import SessionStyles from './Session.css'; import { remote } from 'electron'; import { FileOutlined } from '@ant-design/icons'; import { INPUT } from '../AntdTypes'; +import _ from 'lodash'; +import log from 'electron-log'; const {dialog} = remote; - export default class NewSessionForm extends Component { - getLocalFilePath (success) { - dialog.showOpenDialog((filepath) => { - if (filepath) { - success(filepath); + async getLocalFilePath () { + try { + const {canceled, filePaths} = await dialog.showOpenDialog({properties: ['openFile']}); + if (!canceled && !_.isEmpty(filePaths)) { + return filePaths[0]; } - }); - this.handleSetType = this.handleSetType.bind(this); + } catch (e) { + log.error(e); + } } render () { const {cap, onSetCapabilityParam, isEditingDesiredCaps, id, t} = this.props; - const buttonAfter = this.getLocalFilePath((filepath) => onSetCapabilityParam(filepath[0]))} />; + onClick={async () => {onSetCapabilityParam(await this.getLocalFilePath() || currentFilePath);}} />; switch (cap.type) { case 'text': return onSetCapabilityParam(e.target.value)} />; @@ -37,7 +40,7 @@ export default class NewSessionForm extends Component { return onSetCapabilityParam(e.target.value)} />; case 'file': return
- +
; default: