From cbc2a73b98d0dbfe6c235cb2765a639a473f4759 Mon Sep 17 00:00:00 2001 From: Cameron Nokes Date: Sat, 14 Nov 2015 20:39:45 -0700 Subject: [PATCH 01/20] straighten out babel madness and package dependency bugs --- .babelrc | 17 +----------- README.md | 2 +- package.json | 78 +++++++++++++++++++++++++--------------------------- 3 files changed, 40 insertions(+), 57 deletions(-) diff --git a/.babelrc b/.babelrc index ab823f1..4a93161 100644 --- a/.babelrc +++ b/.babelrc @@ -1,18 +1,3 @@ { - "env": { - "development": { - "plugins": ["react-transform"], - "extra": { - "react-transform": { - "transforms": [{ - "imports": ["react"], - "locals": ["module"] - }, { - "transform": "react-transform-catch-errors", - "imports": ["react", "redbox-react"] - }] - } - } - } - } + "presets": ["stage-0", "es2015", "react"] } diff --git a/README.md b/README.md index f5040de..d8cb227 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,6 @@ Big thanks to [willgm](https://github.com/willgm) for his contributions. ## Change Notes -Note that if you are using a version under 0.1.1, you will have to compile react-toggle-display's JSX yourself. I recommend just updating to 1.x so you don't have to wory about that. No breaking API changes in 1.x. +Note that if you are using a version under 0.1.1, you will have to compile react-toggle-display's JSX yourself. I recommend just updating to 1.x so you don't have to worry about that. No breaking API changes in 1.x. While v2 does not change anything functionally, it was refactored to be a ["stateless functional component"](https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#stateless-functional-components), which won't work in React versions less than 0.14. diff --git a/package.json b/package.json index d39987b..79ea148 100644 --- a/package.json +++ b/package.json @@ -1,42 +1,40 @@ { - "name": "react-toggle-display", - "version": "2.0.0", - "description": "Hide/show a component's children", - "repository": { - "type": "git", - "url": "https://github.com/ccnokes/react-toggle-display" - }, - "main": "./dist/index.js", - "scripts": { - "test": "babel-node ./__tests__/ToggleDisplay-test.js", - "build": "babel index.jsx -o dist/index.js", - "prepublish": "npm run build" - }, - "keywords": [ - "react", - "reactjs", - "react-component", - "hide", - "show", - "toggle", - "component", - "functional-component" - ], - "author": "Cameron Nokes", - "license": "MIT", - "devDependencies": { - "babel": "5.8.34", - "babel-core": "5.8.34", - "babel-loader": "5.3.3", - "babel-plugin-react-transform": "1.1.1", - "browserify": "^11.2.0", - "cheerio": "0.19.0", - "react-tools": "^0.13.3", - "redbox-react": "1.1.1", - "tape": "4.2.2" - }, - "dependencies": { - "react": "0.14.2", - "react-dom": "0.14.2" - } + "name": "react-toggle-display", + "version": "2.0.0", + "description": "Hide/show a component's children", + "repository": { + "type": "git", + "url": "https://github.com/ccnokes/react-toggle-display" + }, + "main": "./dist/index.js", + "scripts": { + "test": "babel-node ./__tests__/ToggleDisplay-test.js", + "build": "npm run clean && mkdir -p ./dist && babel index.jsx --out-file dist/index.js", + "clean": "rm -rf dist", + "prepublish": "npm run build" + }, + "keywords": [ + "react", + "reactjs", + "react-component", + "hide", + "show", + "toggle", + "component", + "functional-component" + ], + "author": "Cameron Nokes", + "license": "MIT", + "devDependencies": { + "babel-cli": "6.1.18", + "babel-preset-es2015": "6.1.18", + "babel-preset-react": "6.1.18", + "babel-preset-stage-0": "6.1.18", + "cheerio": "0.19.0", + "tape": "4.2.2" + }, + "dependencies": { + "react": "0.14.2", + "react-dom": "0.14.2" + } } From a4c9eecbc94bde10d3c189ea53cccda743b6d7e5 Mon Sep 17 00:00:00 2001 From: Cameron Nokes Date: Sat, 14 Nov 2015 20:56:24 -0700 Subject: [PATCH 02/20] 2.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 79ea148..8071928 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-toggle-display", - "version": "2.0.0", + "version": "2.0.1", "description": "Hide/show a component's children", "repository": { "type": "git", From 559e2ef165c68bc58ff09d19bbd258cabf9059d0 Mon Sep 17 00:00:00 2001 From: Cameron Nokes Date: Mon, 16 Nov 2015 10:31:20 -0700 Subject: [PATCH 03/20] move react dependencies to devDependencies --- package.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8071928..9e495a1 100644 --- a/package.json +++ b/package.json @@ -31,10 +31,8 @@ "babel-preset-react": "6.1.18", "babel-preset-stage-0": "6.1.18", "cheerio": "0.19.0", + "react": "^0.14.0", + "react-dom": "^0.14.0", "tape": "4.2.2" - }, - "dependencies": { - "react": "0.14.2", - "react-dom": "0.14.2" } } From b7ea2af87e684d69c7525f40270411277df1521a Mon Sep 17 00:00:00 2001 From: Cameron Nokes Date: Mon, 16 Nov 2015 10:31:27 -0700 Subject: [PATCH 04/20] 2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e495a1..2b7cdb8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-toggle-display", - "version": "2.0.1", + "version": "2.0.2", "description": "Hide/show a component's children", "repository": { "type": "git", From 90d51277c7a614bda0d1bd4e306cea82ec353079 Mon Sep 17 00:00:00 2001 From: Cameron Nokes Date: Mon, 15 Aug 2016 14:17:42 -0600 Subject: [PATCH 05/20] Add support for custom tag name with default to . Upgrade some deps and rename things so that UMD works better under all scenarios. Closes #2. --- .babelrc | 10 +++++- .npmignore | 4 ++- .travis.yml | 2 +- ToggleDisplay.jsx | 43 +++++++++++++++++++++++ __tests__/ToggleDisplay-test.js | 27 ++++++++++++++- index.jsx | 60 --------------------------------- package.json | 11 +++--- 7 files changed, 88 insertions(+), 69 deletions(-) create mode 100644 ToggleDisplay.jsx delete mode 100644 index.jsx diff --git a/.babelrc b/.babelrc index 4a93161..ca4a9ff 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,11 @@ { - "presets": ["stage-0", "es2015", "react"] + "presets": ["stage-0", "es2015", "react"], + "plugins": [ + ["babel-plugin-transform-es2015-modules-umd", { + "globals": { + "react": "React" + }, + "exactGlobals": true + }] + ] } diff --git a/.npmignore b/.npmignore index 975cf4d..e3bb282 100644 --- a/.npmignore +++ b/.npmignore @@ -1 +1,3 @@ -*.jsx \ No newline at end of file +*.jsx +__tests__ +*.md diff --git a/.travis.yml b/.travis.yml index 75c3e02..9f590f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: node_js node_js: - - "4.1" + - "6.1" install: - npm install diff --git a/ToggleDisplay.jsx b/ToggleDisplay.jsx new file mode 100644 index 0000000..9ef0a99 --- /dev/null +++ b/ToggleDisplay.jsx @@ -0,0 +1,43 @@ +import React from 'react'; + +function isDefined(val) { + return val != null; +} + +function shouldHide(props) { + if(isDefined(props.show)) { + return !props.show; + } + else if(isDefined(props.hide)) { + return props.hide; + } + return false; +} + +export default function ToggleDisplay(props) { + if(props.if === false) { + return ; + // return null // this used to work, now have to manually return