diff --git a/build/main.js b/build/main.js index 5ad1283..5707cb5 100644 --- a/build/main.js +++ b/build/main.js @@ -30447,7 +30447,7 @@ var Directory = (function (_Component) { var input = undefined, label = undefined; if (this.props.selectView) { - input = _react2['default'].createElement('input', { type: 'checkbox', id: checkId, checked: this.props.selected, readOnly: true }); + input = _react2['default'].createElement('input', { type: 'checkbox', id: checkId, checked: this.props.selected, readOnly: true, ref: 'check' }); label = _react2['default'].createElement('label', { htmlFor: checkId }); } @@ -30476,6 +30476,8 @@ var Directory = (function (_Component) { }, { key: 'peek', value: function peek() { + if (document.querySelector('#file-menu.active')) return; + var file = _store2['default'].getState().get('files')[this.props.index]; _store2['default'].dispatch((0, _actionsChangedir2['default'])(file.path.replace(/^\//, '') + file.name)); @@ -30664,7 +30666,7 @@ var File = (function (_Component) { var input = undefined, label = undefined; if (this.props.selectView) { - input = _react2['default'].createElement('input', { type: 'checkbox', id: checkId, checked: this.props.selected, readOnly: true }); + input = _react2['default'].createElement('input', { type: 'checkbox', id: checkId, checked: this.props.selected, readOnly: true, ref: 'check' }); label = _react2['default'].createElement('label', { htmlFor: checkId }); } @@ -30693,8 +30695,8 @@ var File = (function (_Component) { }, { key: 'open', value: function open(e) { - e.preventDefault(); - e.stopPropagation(); + if (document.querySelector('#file-menu.active')) return; + var file = _store2['default'].getState().get('files')[this.props.index]; var name = file.type === 'application/pdf' ? 'view' : 'open'; @@ -30905,7 +30907,7 @@ exports['default'] = { var left = window.innerWidth / 2 - _componentsMenu.MENU_WIDTH / 2, top = y + height / 2 + MENU_TOP_SPACE; - var dialogHeight = document.getElementById('fileMenu').offsetHeight; + var dialogHeight = document.getElementById('file-menu').offsetHeight; var diff = window.innerHeight - (dialogHeight + top); if (diff <= 0) { @@ -30917,16 +30919,19 @@ exports['default'] = { }, select: function select(e) { - e.preventDefault(); - e.stopPropagation(); + if (document.querySelector('#file-menu.active')) return; var current = (store.getState().get('activeFile') || []).slice(0); var file = store.getState().get('files')[this.props.index]; + var check = _react2['default'].findDOMNode(this.refs.check); + if (current.indexOf(file) > -1) { current.splice(current.indexOf(file), 1); + check.checked = false; } else { current.push(file); + check.checked = true; } store.dispatch((0, _actionsFile.active)(current)); } @@ -31318,8 +31323,8 @@ var Root = (function (_Component) { _react2['default'].createElement(_componentsNavigation2['default'], null), _react2['default'].createElement(_componentsFileList2['default'], null), _react2['default'].createElement(_componentsToolbar2['default'], null), - _react2['default'].createElement(FileMenu, { id: 'fileMenu' }), - _react2['default'].createElement(MoreMenu, { id: 'moreMenu' }), + _react2['default'].createElement(FileMenu, { id: 'file-menu' }), + _react2['default'].createElement(MoreMenu, { id: 'more-menu' }), _react2['default'].createElement(RenameDialog, null), _react2['default'].createElement(DeleteDialog, null), _react2['default'].createElement(ErrorDialog, null), @@ -32750,8 +32755,8 @@ function humanSize(size) { for (var key in sizes) { var value = sizes[key]; - if (size > value) { - return Math.round(size / value) + key; + if (size >= value) { + return Math.abs(Math.round(size / value)) + key; } } } diff --git a/src/js/components/directory.js b/src/js/components/directory.js index b1ab90e..41b79ca 100644 --- a/src/js/components/directory.js +++ b/src/js/components/directory.js @@ -14,7 +14,7 @@ export default class Directory extends Component { let input, label; if (this.props.selectView) { - input = ; + input = ; label = ; } @@ -37,6 +37,8 @@ export default class Directory extends Component { } peek() { + if (document.querySelector('#file-menu.active')) return; + let file = store.getState().get('files')[this.props.index]; store.dispatch(changedir(file.path.replace(/^\//, '') + file.name)); diff --git a/src/js/components/file.js b/src/js/components/file.js index dc47894..b7fc86f 100644 --- a/src/js/components/file.js +++ b/src/js/components/file.js @@ -14,7 +14,7 @@ export default class File extends Component { let input, label; if (this.props.selectView) { - input = ; + input = ; label = ; } @@ -37,8 +37,8 @@ export default class File extends Component { } open(e) { - e.preventDefault(); - e.stopPropagation(); + if (document.querySelector('#file-menu.active')) return; + let file = store.getState().get('files')[this.props.index]; let name = file.type === 'application/pdf' ? 'view' : 'open'; diff --git a/src/js/components/mixins/entry.js b/src/js/components/mixins/entry.js index 4095d2a..fc38338 100644 --- a/src/js/components/mixins/entry.js +++ b/src/js/components/mixins/entry.js @@ -17,7 +17,7 @@ export default { let left = window.innerWidth / 2 - MENU_WIDTH / 2, top = y + height / 2 + MENU_TOP_SPACE; - let dialogHeight = document.getElementById('fileMenu').offsetHeight; + let dialogHeight = document.getElementById('file-menu').offsetHeight; let diff = window.innerHeight - (dialogHeight + top); if (diff <= 0) { @@ -29,16 +29,19 @@ export default { }, select(e) { - e.preventDefault(); - e.stopPropagation(); + if (document.querySelector('#file-menu.active')) return; let current = (store.getState().get('activeFile') || []).slice(0); let file = store.getState().get('files')[this.props.index]; + let check = React.findDOMNode(this.refs.check); + if (current.indexOf(file) > -1) { current.splice(current.indexOf(file), 1); + check.checked = false; } else { current.push(file) + check.checked = true; } store.dispatch(active(current)); } diff --git a/src/js/components/root.js b/src/js/components/root.js index d21b430..67a7f83 100644 --- a/src/js/components/root.js +++ b/src/js/components/root.js @@ -39,8 +39,8 @@ export default class Root extends Component { - - + + diff --git a/src/js/utils.js b/src/js/utils.js index fd5754d..08441f2 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -39,14 +39,14 @@ const sizes = { 'GB': Math.pow(2, 30), 'MB': Math.pow(2, 20), 'KB': Math.pow(2, 10), - 'B': 0 + 'B': -1 } export function humanSize(size) { for (let key in sizes) { let value = sizes[key]; if (size >= value) { - return Math.round(size / value) + key; + return Math.abs(Math.round(size / value)) + key; } } }