diff --git a/config/scripts.yaml b/config/scripts.yaml index 1c18c1e0b50..18b4ad724ff 100644 --- a/config/scripts.yaml +++ b/config/scripts.yaml @@ -24,6 +24,7 @@ components: # react-scripts doesn't handle .mjs files correctly modulebuild: '!' build: "npm run clean && npm run nodebuild" + watch: "BABEL_ENV=production rollup -c -w -o dist/index.js -f cjs" core: test: "BABEL_ENV=production nyc mocha tests/*.test.js" report: "BABEL_ENV=production nyc report --reporter=html mocha --compilers js:babel-core/register tests/*.test.js" diff --git a/packages/components/in b/packages/components/in new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/components/package.json b/packages/components/package.json index 2cfea0a8fbc..0fac1ef1b8f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -16,6 +16,7 @@ "main": "dist/index.js", "scripts": { "clean": "rimraf dist", + "watch": "BABEL_ENV=production rollup -c -w -o dist/index.js -f cjs", "nodebuild": "BABEL_ENV=production rollup -c -o dist/index.js -f cjs", "build": "npm run clean && npm run nodebuild", "test": "echo \"components: No tests configured. Perhaps you'd like to do this?\" && exit 0", diff --git a/packages/components/src/Icon/index.js b/packages/components/src/Icon/index.js index 1f8ce7cdb33..b000ba51efb 100644 --- a/packages/components/src/Icon/index.js +++ b/packages/components/src/Icon/index.js @@ -23,7 +23,7 @@ const Icon = props => { Icon.propTypes = { size: PropTypes.number, viewBox: PropTypes.string, - pathString: PropTypes.string.isRequired + icon: PropTypes.string }; Icon.defaultProps = { diff --git a/packages/components/src/Workbench/DraftPattern/index.js b/packages/components/src/Workbench/DraftPattern/index.js new file mode 100644 index 00000000000..d4fed3c059d --- /dev/null +++ b/packages/components/src/Workbench/DraftPattern/index.js @@ -0,0 +1,64 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { defaultGist } from "@freesewing/utils"; +import DraftConfigurator from "../../DraftConfigurator"; +import themePlugin from "@freesewing/plugin-theme"; +import svgattrPlugin from "@freesewing/plugin-svgattr"; +import i18nPlugin from "@freesewing/plugin-i18n"; +import validatePlugin from "@freesewing/plugin-validate"; +import designerPlugin from "@freesewing/plugin-designer"; +import { strings } from "@freesewing/i18n"; +import { FormattedMessage } from "react-intl"; + +const DraftPattern = props => { + let pattern = new props.Pattern(props.gist.settings) + .use(themePlugin) + .use(svgattrPlugin, { class: "freesewing draft" }) + .use(i18nPlugin, { strings: strings }) + .use(validatePlugin) + .use(designerPlugin, props.raiseEvent); + pattern.draft(); + console.dir({ pattern }); + + return ( +
+
+

+ +

+
+

gist

+
{JSON.stringify(props.gist, null, 2)}
+
+ + +
+ ); +}; + +DraftPattern.propTypes = { + gist: PropTypes.object.isRequired, + updateGist: PropTypes.func.isRequired, + config: PropTypes.object.isRequired, + raiseEvent: PropTypes.func.isRequired, + Pattern: PropTypes.func.isRequired, + units: PropTypes.oneOf(["metric", "imperial"]) +}; + +DraftPattern.defaultProps = { + units: "metric", + pointInfo: null +}; + +export default DraftPattern; diff --git a/packages/components/src/Workbench/Pattern/index.js b/packages/components/src/Workbench/Pattern/index.js deleted file mode 100644 index 226ca14fee8..00000000000 --- a/packages/components/src/Workbench/Pattern/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { defaultGist } from "@freesewing/utils"; -import DraftConfigurator from "../../DraftConfigurator"; - -const Pattern = props => { - let pattern = new props.Pattern(props.gist); - return ( -
-
-
-

gist

-
{JSON.stringify(props.gist, null, 2)}
-
- - -
- ); -}; - -Pattern.propTypes = { - gist: PropTypes.object.isRequired, - updateGist: PropTypes.func.isRequired, - config: PropTypes.object.isRequired, - raiseEvent: PropTypes.func.isRequired, - Pattern: PropTypes.func.isRequired, - units: PropTypes.oneOf(["metric", "imperial"]).isRequired -}; - -export default Pattern; diff --git a/packages/components/src/Workbench/Welcome/index.js b/packages/components/src/Workbench/Welcome/index.js index 9c39cbd427a..9b1733f1b63 100644 --- a/packages/components/src/Workbench/Welcome/index.js +++ b/packages/components/src/Workbench/Welcome/index.js @@ -52,7 +52,7 @@ const Welcome = props => { variant="contained" size="large" color="primary" - onClick={() => props.setDisplay("pattern")} + onClick={() => props.setDisplay("draft")} > diff --git a/packages/components/src/Workbench/index.js b/packages/components/src/Workbench/index.js index 3f30c466e79..98f2abc1796 100644 --- a/packages/components/src/Workbench/index.js +++ b/packages/components/src/Workbench/index.js @@ -13,7 +13,7 @@ import withLanguage from "../withLanguage"; import LanguageIcon from "@material-ui/icons/Translate"; import DarkModeIcon from "@material-ui/icons/Brightness3"; import LanguageChooser from "./LanguageChooser"; -import ShowPattern from "./Pattern"; +import DraftPattern from "./DraftPattern"; import Welcome from "./Welcome"; const Workbench = props => { @@ -35,7 +35,7 @@ const Workbench = props => { if (theme === "light") setTheme("dark"); else setTheme("light"); }; - const raiseEvent = (type, data) => { + const raiseEvent = (type = null, data = null) => { console.log("FIXME: Event raised", type, data); }; @@ -83,9 +83,9 @@ const Workbench = props => { /> ); break; - case "pattern": + case "draft": main = ( -