diff --git a/packages/components/package.json b/packages/components/package.json index 2ddf941439e..a7b60f319c2 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -31,6 +31,9 @@ "@freesewing/pattern-info": "^2.0.0-beta.3", "@freesewing/mui-theme": "^2.0.0-beta.3", "@freesewing/css-theme": "^2.0.0-beta.3", + "@freesewing/core": "^2.0.0-beta.3", + "@freesewing/examples": "^2.0.0-beta.3", + "@freesewing/rendertest": "^2.0.0-beta.3", "typeface-roboto-condensed": "latest", "@freesewing/i18n": "^2.0.0-beta.3", "@freesewing/utils": "^2.0.0-beta.3", diff --git a/packages/components/src/Example/index.js b/packages/components/src/Example/index.js new file mode 100644 index 00000000000..946c1a3ea66 --- /dev/null +++ b/packages/components/src/Example/index.js @@ -0,0 +1,128 @@ +import React, { useState } from "react"; +import PropTypes from "prop-types"; +import examples from "@freesewing/examples"; +import rendertest from "@freesewing/rendertest"; +import i18nPlugin from "@freesewing/plugin-i18n"; +import Draft from "../Draft"; +import Design from "../Workbench/Design"; +import { FormattedMessage } from "react-intl"; + +const Example = props => { + const [design, setDesign] = useState(false); + const [focus, setFocus] = useState(null); + + const raiseEvent = (type, data) => { + if (type === "clearFocusAll") return setFocus(null); + let f = {}; + if (focus !== null) f = { ...focus }; + if (typeof f[data.part] === "undefined") + f[data.part] = { paths: [], points: [], coords: [] }; + if (type === "point") f[data.part].points.push(data.name); + else if (type === "path") f[data.part].paths.push(data.name); + else if (type === "coords") f[data.part].coords.push(data.coords); + else if (type === "clearFocus") { + let i = focus[data.part][data.type].indexOf(data.name); + f[data.part][data.type].splice(i, 1); + } + + setFocus(f); + }; + + let focusCount = 0; + if (focus !== null) { + for (let p of Object.keys(focus)) { + for (let i in focus[p].points) focusCount++; + for (let i in focus[p].paths) focusCount++; + for (let i in focus[p].coords) focusCount++; + } + } + + const patterns = { + examples, + rendertest + }; + const settings = { options: { ...props.options } }; + if (props.part !== "") settings.only = [props.part]; + const pattern = new patterns[props.pattern](settings); + + const styles = { + paragraph: { + padding: "0 1rem" + } + }; + + pattern.draft(); + const patternProps = pattern.getRenderProps(); + return ( +
+ +
+ {props.caption} |  + {design ? ( + + +   ( + setDesign(false)}> + + + ) + {focusCount > 0 ? ( + +   ( + raiseEvent("clearFocusAll", null)} + > + + + ) + + ) : null} + + ) : ( + + +   ( + setDesign(true)}> + + + ) + + )} + {design ? ( +
+ +
+ ) : null} +
+
+ ); +}; + +Example.propTypes = { + pattern: PropTypes.string, + design: PropTypes.bool, + caption: PropTypes.string, + part: PropTypes.string, + options: PropTypes.obj +}; + +Example.defaultProps = { + pattern: "examples", + design: false, + caption: "", + options: {}, + part: "" +}; + +export default Example; diff --git a/packages/components/src/Navbar/index.js b/packages/components/src/Navbar/index.js index 69e0f9dd7c5..bd472e59d71 100644 --- a/packages/components/src/Navbar/index.js +++ b/packages/components/src/Navbar/index.js @@ -55,7 +55,6 @@ const Navbar = props => { {props.emblem} ); - console.log(props); return (
diff --git a/packages/components/src/Workbench/Design/index.js b/packages/components/src/Workbench/Design/index.js index 2951d184583..5fb198f58e7 100644 --- a/packages/components/src/Workbench/Design/index.js +++ b/packages/components/src/Workbench/Design/index.js @@ -132,10 +132,10 @@ const Design = props => { container: { padding: "0 1rem" }, - h3: { + h5: { margin: "0.5rem 0" }, - h4: { + h6: { margin: "0.25rem 0 0 0.5rem" }, ul: { @@ -152,21 +152,21 @@ const Design = props => { let info = []; for (let part of Object.keys(props.focus)) { info.push( -

+

parts.{part} -
+ ); for (let i in props.focus[part].paths) { let name = props.focus[part].paths[i]; let path = props.parts[part].paths[name]; info.push( -

path.{name} -

+ ); info.push(