From cd737da6d999462481f47d4be4a2235ed0f7b128 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Mon, 13 Nov 2017 10:40:58 +0100 Subject: [PATCH] make settings passable --- src/interface/index.js | 47 ++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/src/interface/index.js b/src/interface/index.js index 4852346..3d4c9fe 100644 --- a/src/interface/index.js +++ b/src/interface/index.js @@ -15,18 +15,6 @@ import printerSettings from '../settings/printer.yml'; import materialSettings from '../settings/material.yml'; import qualitySettings from '../settings/quality.yml'; -const DEFAULT_PRINTER = 'ultimaker2'; -const DEFAULT_MATERIAL = 'pla'; -const DEFAULT_QUALITY = 'medium'; - -const INITIAL_SETTINGS = _.merge( - {}, - baseSettings, - printerSettings[DEFAULT_PRINTER], - qualitySettings[DEFAULT_MATERIAL], - materialSettings[DEFAULT_MATERIAL] -); - const styles = { container: { position: 'relative', @@ -67,11 +55,18 @@ const styles = { class Interface extends React.Component { constructor(props) { super(props); + const { defaultPrinter, defaultQuality, defaultMaterial, printers, quality, material, defaultSettings } = props; this.state = { controlMode: 'translate', isSlicing: false, sliced: false, - settings: INITIAL_SETTINGS + settings: _.merge( + {}, + defaultSettings, + printers[defaultPrinter], + quality[defaultQuality], + material[defaultMaterial] + ) }; } @@ -168,7 +163,7 @@ class Interface extends React.Component { } render() { - const { width, height, classes, onCompleteActions } = this.props; + const { width, height, classes, onCompleteActions, defaultPrinter, defaultQuality, defaultMaterial } = this.props; const { sliced, isSlicing, progress, gcode, controlMode, settings } = this.state; return ( @@ -194,12 +189,12 @@ class Interface extends React.Component { {!sliced && @@ -234,6 +229,22 @@ Interface.propTypes = { height: PropTypes.number.isRequired, classes: PropTypes.objectOf(PropTypes.string), onCompleteActions: PropTypes.arrayOf(PropTypes.shape({ title: PropTypes.string, callback: PropTypes.func })).isRequired, + defaultSettings: PropTypes.object.isRequired, + printers: PropTypes.object.isRequired, + defaultPrinter: PropTypes.string.isRequired, + quality: PropTypes.object.isRequired, + defaultQuality: PropTypes.string.isRequired, + material: PropTypes.object.isRequired, + defaultMaterial: PropTypes.string.isRequired +}; +Interface.defaultProps = { + defaultSettings: baseSettings, + printers: printerSettings, + defaultPrinter: 'ultimaker2', + quality: qualitySettings, + defaultQuality: 'medium', + material: materialSettings, + defaultMaterial: 'pla' }; export default injectSheet(styles)(Interface);