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"; 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); }; const getDefault = 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; default: return false; } }; let noyes = [ , ]; let units = { metric: , imperial: }; const addProps = setting => { const labels = { sa: { none: , dflt: , custom: }, only: { dflt: , custom: }, paperless: noyes, complete: noyes }; let childProps = { raiseEvent: props.raiseEvent, updateValue: props.updateValue, units: props.units, key: setting, name: setting, labels: labels[setting], noDocs: props.noDocs, dflt: getDefault(setting) }; 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] = ; } } if ( 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; 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}
    ); })}
); }; DraftSettings.propTypes = { config: PropTypes.object.isRequired }; DraftSettings.defaultProps = {}; export default DraftSettings;