diff --git a/packages/components/src/DraftConfigurator/DraftSettingAdvanced/index.js b/packages/components/src/DraftConfigurator/DraftSettingAdvanced/index.js new file mode 100644 index 00000000000..e1a64a574ec --- /dev/null +++ b/packages/components/src/DraftConfigurator/DraftSettingAdvanced/index.js @@ -0,0 +1,4 @@ +import React from 'react' +import PatternOptionBool from '../PatternOptionBool' + +export default props => diff --git a/packages/components/src/DraftConfigurator/DraftSettingAdvanced/stories.js b/packages/components/src/DraftConfigurator/DraftSettingAdvanced/stories.js new file mode 100644 index 00000000000..f9b9c606acf --- /dev/null +++ b/packages/components/src/DraftConfigurator/DraftSettingAdvanced/stories.js @@ -0,0 +1,22 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' +import Sa from '.' + +const props = { + raiseEvent: (type, data) => console.log(`Action of type ${type} triggered, data passed is`, data), + updateValue: (name, value) => console.log(`Updated setting ${name}, value is now: ${value}`), + name: 'sa', + dflt: 'dflt', + title: 'Seam allowance', + desc: + "This is the seam allowance description. I'm wrapped in a p tag. This component only sets the CSS class on a non-default value. It's up to you to supply the CSS to style it.", + labels: { + none: 'No seam allowance', + dflt: 'Standard seam allowance', + custom: 'Custom seam allowance' + } +} + +storiesOf('Low level/DraftSettingSa', module) + .add('Metric', () => ) + .add('Imperial', () => ) diff --git a/packages/components/src/DraftConfigurator/DraftSettings/index.js b/packages/components/src/DraftConfigurator/DraftSettings/index.js index 765274a3ef0..be1b0d75d83 100644 --- a/packages/components/src/DraftConfigurator/DraftSettings/index.js +++ b/packages/components/src/DraftConfigurator/DraftSettings/index.js @@ -1,51 +1,50 @@ -import React, { useState } from "react"; -import PropTypes from "prop-types"; -import { FormattedMessage } from "react-intl"; -import DraftSettingSa from "../DraftSettingSa"; -import DraftSettingMargin from "../DraftSettingMargin"; -import DraftSettingComplete from "../DraftSettingComplete"; -import DraftSettingPaperless from "../DraftSettingPaperless"; -import DraftSettingUnits from "../DraftSettingUnits"; -import DraftSettingLanguage from "../DraftSettingLanguage"; -import DraftSettingOnly from "../DraftSettingOnly"; -import RightIcon from "@material-ui/icons/KeyboardArrowRight"; +import React, { useState } from 'react' +import PropTypes from 'prop-types' +import { FormattedMessage } from 'react-intl' +import DraftSettingSa from '../DraftSettingSa' +import DraftSettingMargin from '../DraftSettingMargin' +import DraftSettingComplete from '../DraftSettingComplete' +import DraftSettingPaperless from '../DraftSettingPaperless' +import DraftSettingAdvanced from '../DraftSettingAdvanced' +import DraftSettingUnits from '../DraftSettingUnits' +import DraftSettingLanguage from '../DraftSettingLanguage' +import DraftSettingOnly from '../DraftSettingOnly' +import RightIcon from '@material-ui/icons/KeyboardArrowRight' const DraftSettings = props => { - const [expanded, setExpanded] = useState([]); + const [expanded, setExpanded] = useState([]) const toggleGroup = group => { - let shown = expanded.slice(0); - let index = shown.indexOf(group); - if (index === -1) shown.push(group); - else shown.splice(index, 1); - setExpanded(shown); - }; + let shown = expanded.slice(0) + let index = shown.indexOf(group) + if (index === -1) shown.push(group) + else shown.splice(index, 1) + setExpanded(shown) + } const getDefault = setting => { - if (props.recipe && typeof props.recipe.settings[setting] !== "undefined") - return props.recipe.settings[setting]; + if (props.recipe && typeof props.recipe.settings[setting] !== 'undefined') + return props.recipe.settings[setting] switch (setting) { - case "sa": - return 10; - case "only": - return "dflt"; - case "complete": - return true; - case "margin": - return 2; - case "units": - return props.units; + case 'sa': + return 10 + case 'only': + return 'dflt' + case 'complete': + return true + case 'margin': + return 2 + case 'units': + return props.units default: - return false; + return false } - }; + } - let noyes = [ - , - - ]; + let noyes = [, ] + let hideshow = [, ] let units = { metric: , imperial: - }; + } const addProps = setting => { const labels = { sa: { @@ -58,8 +57,9 @@ const DraftSettings = props => { custom: }, paperless: noyes, - complete: noyes - }; + advanced: hideshow, + complete: hideshow + } let childProps = { raiseEvent: props.raiseEvent, updateValue: props.updateValue, @@ -69,80 +69,74 @@ const DraftSettings = props => { labels: labels[setting], noDocs: props.noDocs, dflt: getDefault(setting) - }; - childProps.title = ( - - ); - childProps.desc = ( - - ); - if (setting === "only") { - childProps.customDflt = []; - childProps.parts = {}; + } + childProps.title = + childProps.desc = + if (setting === 'only') { + childProps.customDflt = [] + childProps.parts = {} if (props.config.draftOrder) { for (let part of props.config.draftOrder) - childProps.parts[part] = ; + childProps.parts[part] = } } if ( - typeof props.gist !== "undefined" && - typeof props.gist.settings !== "undefined" && - typeof props.gist.settings[setting] !== "undefined" + typeof props.gist !== 'undefined' && + typeof props.gist.settings !== 'undefined' && + typeof props.gist.settings[setting] !== 'undefined' ) - childProps.value = props.gist.settings[setting]; - else childProps.value = null; + childProps.value = props.gist.settings[setting] + else childProps.value = null - return childProps; - }; + return childProps + } let groups = { - preferences: [ - , - , - - ], advanced: [ - , - , - , - + , + , + , + , + ] - }; + } return ( -
    - {Object.keys(groups).map(group => { - let open = true; - if (expanded.indexOf(group) === -1) open = false; - let children = null; - if (open) children = groups[group].map(component => component); - return ( - -
  • - toggleGroup(group)}> - - - -
  • - {children} -
    - ); - })} -
- ); -}; + +
    + + + +
+ {props.gist.settings.advanced ? ( +
    + {Object.keys(groups).map(group => { + let open = true + if (expanded.indexOf(group) === -1) open = false + let children = null + if (open) children = groups[group].map(component => component) + return ( + +
  • + toggleGroup(group)}> + + + +
  • + {children} +
    + ) + })} +
+ ) : null} +
+ ) +} DraftSettings.propTypes = { config: PropTypes.object.isRequired -}; +} -DraftSettings.defaultProps = {}; +DraftSettings.defaultProps = {} -export default DraftSettings; +export default DraftSettings diff --git a/packages/components/src/DraftConfigurator/PatternOptions/index.js b/packages/components/src/DraftConfigurator/PatternOptions/index.js index 7685fedbc3c..7b465aac705 100644 --- a/packages/components/src/DraftConfigurator/PatternOptions/index.js +++ b/packages/components/src/DraftConfigurator/PatternOptions/index.js @@ -1,30 +1,30 @@ -import React, { useState } from "react"; -import PropTypes from "prop-types"; -import OptionGroup from "../OptionGroup"; -import { FormattedMessage } from "react-intl"; -import RightIcon from "@material-ui/icons/KeyboardArrowRight"; +import React, { useState } from 'react' +import PropTypes from 'prop-types' +import OptionGroup from '../OptionGroup' +import { FormattedMessage } from 'react-intl' +import RightIcon from '@material-ui/icons/KeyboardArrowRight' const PatternOptions = props => { - const [expanded, setExpanded] = useState([]); + const [expanded, setExpanded] = useState([]) const toggleGroup = group => { - let shown = expanded.slice(0); - let index = shown.indexOf(group); - if (index === -1) shown.push(group); - else shown.splice(index, 1); - setExpanded(shown); - }; + let shown = expanded.slice(0) + let index = shown.indexOf(group) + if (index === -1) shown.push(group) + else shown.splice(index, 1) + setExpanded(shown) + } const renderGroup = group => { - let open = true; - if (expanded.indexOf(group) === -1) open = false; - let output = []; - let children = null; + let open = true + if (expanded.indexOf(group) === -1) open = false + let output = [] + let children = null if (expanded.indexOf(group) !== -1) children = (
    { raiseEvent={props.raiseEvent} />
- ); + ) output.push( -
  • +
  • toggleGroup(group)}> - - + + {children}
  • - ); + ) - return output; - }; + return output + } - return ( -
      - {Object.keys(props.config.optionGroups).map(group => renderGroup(group))} -
    - ); -}; + const children = [] + for (let group in props.config.optionGroups) { + if (props.gist.settings.advanced || group !== 'advanced') { + children.push(renderGroup(group)) + } + } + + return
      {children}
    +} PatternOptions.propTypes = { config: PropTypes.object.isRequired, raiseEvent: PropTypes.func -}; +} -PatternOptions.defaultProps = {}; +PatternOptions.defaultProps = {} -export default PatternOptions; +export default PatternOptions diff --git a/packages/components/src/DraftConfigurator/index.js b/packages/components/src/DraftConfigurator/index.js index 5e2fc1c79f0..0bf99596f0c 100644 --- a/packages/components/src/DraftConfigurator/index.js +++ b/packages/components/src/DraftConfigurator/index.js @@ -25,7 +25,7 @@ const DraftConfigurator = props => {
  • - +