diff --git a/electron.js b/electron.js index fdee93f..1cbcd7b 100644 --- a/electron.js +++ b/electron.js @@ -21,7 +21,7 @@ let mountedPIDs = []; function createWindow() { // Create the browser window. - const height = process.env.ELECTRON_START_URL ? 344 : 324; + const height = process.env.ELECTRON_START_URL ? 324 : 304; mainWindow = new BrowserWindow({ width: 425, height: height, diff --git a/src/App.js b/src/App.js index 286adac..fe29cf7 100644 --- a/src/App.js +++ b/src/App.js @@ -634,7 +634,7 @@ class App extends Component { let key = 0; mainContent.push((
+ style={{height: '44%'}}> + style={{height: '56%'}}> { let configButton = null; + let secondRow = 6; if (props.allowConfig) { configButton = ( - + + + ); } + let inputColumnSpan; let inputControl = null; - let mountWidth = '70%'; if (props.platform === 'win32') { + inputColumnSpan = 20; inputControl = ; - mountWidth = '18%'; + } else { - inputControl = ; + inputColumnSpan = 60; + inputControl = ( + + + ); } - let actionDisplay = null; - if (props.allowMount) { - actionDisplay = ; - } else { - actionDisplay = ; - } + const buttonDisplay = props.allowMount ? + (props.mounted ? 'Unmount' : 'Mount') : + ; + + const actionsDisplay = ( + ); + + const autoMountControl = ( + + Auto-mount + + ); return ( -
-
{configButton}

{props.title}

- - - - - - - - -
{inputControl} - - {actionDisplay} - - Auto-mount -
-
+ + {configButton} + + {inputControl} + {actionsDisplay} + {autoMountControl} + ); }, styles, {allowMultiple: true}); \ No newline at end of file diff --git a/src/components/UI/Button/Button.css b/src/components/UI/Button/Button.css index cb0bdc2..9aa5877 100644 --- a/src/components/UI/Button/Button.css +++ b/src/components/UI/Button/Button.css @@ -1,7 +1,6 @@ .Button { display: block; text-align: center; - margin: 0; padding: 4px; outline: 0; color: var(--text_color); @@ -10,8 +9,10 @@ border: none; text-decoration: none; text-outline: none; + vertical-align: center; height: 100%; width: 100%; + overflow: hidden; } .Button:hover:enabled { @@ -21,7 +22,7 @@ } .Button:hover:disabled { - cursor: default; + cursor: no-drop; } .Button:active, diff --git a/src/components/UI/DropDown/DropDown.css b/src/components/UI/DropDown/DropDown.css index 187a3f5..fcc23c7 100644 --- a/src/components/UI/DropDown/DropDown.css +++ b/src/components/UI/DropDown/DropDown.css @@ -23,4 +23,17 @@ background: rgba(10, 10, 15, 0.8); border-color: rgba(10, 10, 20, 0.9); color: var(--text_color); +} + +.Select:hover:enabled { + cursor: pointer; +} + +.Select:hover:disabled { + cursor: no-drop; +} + +.Select:active, +.Select.active { + cursor: pointer; } \ No newline at end of file diff --git a/src/components/UI/Grid/Grid.js b/src/components/UI/Grid/Grid.js index 8df6a23..ad92a61 100644 --- a/src/components/UI/Grid/Grid.js +++ b/src/components/UI/Grid/Grid.js @@ -66,36 +66,41 @@ export default CSSModules(class extends Component { const dimensions = this.state.dimensions; if (this.state.calculated) { children = React.Children.map(this.props.children, (child, i) => { - let row = child.props.row || 0; - if (typeof(row) === 'function') { - row = row(dimensions); + if (child) { + let row = child.props.row || 0; + if (typeof(row) === 'function') { + row = row(dimensions); + } + + let col = child.props.col || 0; + if (typeof(col) === 'function') { + col = col(dimensions); + } + + let rowSpan = child.props.rowSpan; + if (typeof(rowSpan) === 'function') { + rowSpan = rowSpan(dimensions.rows - row, dimensions.rows); + } + + let colSpan = child.props.colSpan; + if (typeof(colSpan) === 'function') { + colSpan = colSpan(dimensions.columns - col, dimensions.columns); + } + + rowSpan = rowSpan ? (rowSpan === 'remain' ? (dimensions.rows - row) : rowSpan) : null; + colSpan = colSpan ? (colSpan === 'remain' ? dimensions.columns - col : colSpan) : null; + + return {child}; + } else { + return null; } - - let col = child.props.col || 0; - if (typeof(col) === 'function') { - col = col(dimensions); - } - - let rowSpan = child.props.rowSpan; - if (typeof(rowSpan) === 'function') { - rowSpan = rowSpan(dimensions.rows - row, dimensions.rows); - } - - let colSpan = child.props.colSpan; - if (typeof(colSpan) === 'function') { - colSpan = colSpan(dimensions.columns - col, dimensions.columns); - } - - rowSpan = rowSpan ? (rowSpan === 'remain' ? (dimensions.rows - row) : rowSpan) : null; - colSpan = colSpan ? (colSpan === 'remain' ? dimensions.columns - col : colSpan) : null; - - return {child}; - }); + }) + .filter(i => i !== null); } const style = { diff --git a/src/containers/MountItems/MountItems.css b/src/containers/MountItems/MountItems.css index bbbdc81..d9fbcb3 100644 --- a/src/containers/MountItems/MountItems.css +++ b/src/containers/MountItems/MountItems.css @@ -1,5 +1,6 @@ .MountItems { padding: 0; + margin: 0; width: 100%; box-sizing: border-box; } \ No newline at end of file diff --git a/src/hoc/RootElem/RootElem.js b/src/hoc/RootElem/RootElem.js new file mode 100644 index 0000000..a40dcf7 --- /dev/null +++ b/src/hoc/RootElem/RootElem.js @@ -0,0 +1,9 @@ +import React from 'react'; + +export default (props) => { + return ( +
+ {props.children} +
+ ) +}; \ No newline at end of file diff --git a/src/index.css b/src/index.css index 0b69062..9a4c0ce 100644 --- a/src/index.css +++ b/src/index.css @@ -2,7 +2,7 @@ --border_radius: 4px; --control_background: rgba(150, 150, 190, .15); - --control_background_hover: rgba(150, 150, 190, .3); + --control_background_hover: rgba(150, 150, 190, .35); --control_border: 1px solid rgba(70, 70, 70, 0.9); --control_box_shadow: 1px 1px 1px black; --control_transparent_background: rgba(40, 40, 55, 0.45); @@ -11,7 +11,7 @@ --text_color: rgba(200, 205, 220, 0.7); --text_color_hover: rgba(200, 205, 220, 0.7); --text_color_error: rgba(203, 120, 120, 0.8); - --heading_text_color: rgba(166, 177, 219, 0.7); + --heading_text_color: rgba(161, 190, 219, 0.7); --heading_other_text_color: var(--heading_text_color); --text_color_transition: color 0.3s; }