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;