import React, { useState } from "react"; import PropTypes from "prop-types"; import { gistDefaults } from "../utils"; import { patternInfo, patternList } from "@freesewing/patterns"; import { FormattedMessage } from "react-intl"; import List from "@material-ui/core/List"; import ListSubheader from "@material-ui/core/ListSubheader"; import CollapsedIcon from "@material-ui/icons/ArrowDropDown"; import ExpandedIcon from "@material-ui/icons/ArrowRight"; 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"; const DraftSettings = props => { 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 pattern = patternInfo[props.pattern]; let dflts = gistDefaults(pattern.config, props.gist); let noyes = [ , ]; let units = { metric: , imperial: }; const addProps = setting => { const labels = { sa: { none: , dflt: , custom: }, only: { dflt: , custom: }, paperless: noyes, complete: noyes }; let childProps = { triggerAction: props.triggerAction, updateValue: props.updateValue, units: props.units, key: setting, name: setting, labels: labels[setting] }; childProps.title = ( ); childProps.desc = ( ); if (setting === "only") { childProps.dflt = "dflt"; childProps.customDflt = []; childProps.parts = {}; for (let part of pattern.parts) childProps.parts[part] = ; } return childProps; }; let groups = { preferences: [ , , ], advanced: [ , , , ] }; return ( } className="draft-settings gist-side"> {Object.keys(groups).map(group => { let open = true; if (expanded.indexOf(group) === -1) open = false; return ( toggleGroup(group)} >

{open ? ( ) : ( )}

{expanded.indexOf(group) === -1 ? null : groups[group].map(component => component)}
); })}
); }; DraftSettings.propTypes = { pattern: PropTypes.oneOf(patternList), units: PropTypes.oneOf(["metric", "imperial"]).isRequired }; DraftSettings.defaultProps = {}; export default DraftSettings;