From 0398c7f56d0019c0d684465f3ec2d35ef8ae4510 Mon Sep 17 00:00:00 2001 From: Oleg Isonen Date: Tue, 16 Jul 2019 16:28:34 +0200 Subject: [PATCH 1/2] support falsy value from fn rule --- packages/css-jss/.size-snapshot.json | 12 +++++----- .../.size-snapshot.json | 24 +++++++++---------- .../src/function-rules.test.js | 15 ++++++++++++ .../src/index.js | 4 +++- .../jss-preset-default/.size-snapshot.json | 12 +++++----- packages/jss-starter-kit/.size-snapshot.json | 12 +++++----- packages/react-jss/.size-snapshot.json | 12 +++++----- 7 files changed, 54 insertions(+), 37 deletions(-) diff --git a/packages/css-jss/.size-snapshot.json b/packages/css-jss/.size-snapshot.json index 795d58477..4549985f1 100644 --- a/packages/css-jss/.size-snapshot.json +++ b/packages/css-jss/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/css-jss.js": { - "bundled": 57471, - "minified": 20270, - "gzipped": 6819 + "bundled": 57601, + "minified": 20274, + "gzipped": 6822 }, "dist/css-jss.min.js": { - "bundled": 56717, - "minified": 19812, - "gzipped": 6608 + "bundled": 56847, + "minified": 19816, + "gzipped": 6610 }, "dist/css-jss.cjs.js": { "bundled": 2919, diff --git a/packages/jss-plugin-rule-value-function/.size-snapshot.json b/packages/jss-plugin-rule-value-function/.size-snapshot.json index 0fddb170f..2a03e009d 100644 --- a/packages/jss-plugin-rule-value-function/.size-snapshot.json +++ b/packages/jss-plugin-rule-value-function/.size-snapshot.json @@ -1,23 +1,23 @@ { "dist/jss-plugin-rule-value-function.js": { - "bundled": 2210, - "minified": 747, - "gzipped": 438 + "bundled": 2340, + "minified": 751, + "gzipped": 440 }, "dist/jss-plugin-rule-value-function.min.js": { - "bundled": 2210, - "minified": 747, - "gzipped": 438 + "bundled": 2340, + "minified": 751, + "gzipped": 440 }, "dist/jss-plugin-rule-value-function.cjs.js": { - "bundled": 1802, - "minified": 646, - "gzipped": 371 + "bundled": 1928, + "minified": 650, + "gzipped": 373 }, "dist/jss-plugin-rule-value-function.esm.js": { - "bundled": 1724, - "minified": 582, - "gzipped": 324, + "bundled": 1850, + "minified": 586, + "gzipped": 328, "treeshaked": { "rollup": { "code": 12, diff --git a/packages/jss-plugin-rule-value-function/src/function-rules.test.js b/packages/jss-plugin-rule-value-function/src/function-rules.test.js index 3d6a8498b..86bd0e12f 100644 --- a/packages/jss-plugin-rule-value-function/src/function-rules.test.js +++ b/packages/jss-plugin-rule-value-function/src/function-rules.test.js @@ -52,6 +52,9 @@ describe('jss-plugin-rule-value-function: Function rules', () => { .createStyleSheet( { a: data => { + if (data.removeAll) { + return null + } if (data.noDisplay) { return {color: data.color} } @@ -89,6 +92,18 @@ describe('jss-plugin-rule-value-function: Function rules', () => { } `) }) + + it('should remove all props', () => { + sheet.update({color: 'red'}) + expect(sheet.toString()).to.be(stripIndent` + .a-id { + color: red; + display: block; + } + `) + sheet.update({removeAll: true}) + expect(sheet.toString()).to.be('.a-id {}') + }) }) describe('fallbacks inside', () => { diff --git a/packages/jss-plugin-rule-value-function/src/index.js b/packages/jss-plugin-rule-value-function/src/index.js index b566350e2..9167c7acd 100644 --- a/packages/jss-plugin-rule-value-function/src/index.js +++ b/packages/jss-plugin-rule-value-function/src/index.js @@ -52,7 +52,9 @@ export default function functionPlugin() { // If we have a style function, the entire rule is dynamic and style object // will be returned from that function. if (fnRule) { - styleRule.style = fnRule(data) + // Empty object will remove all currently defined props + // in case function rule returns a falsy value. + styleRule.style = fnRule(data) || {} } const fnValues = styleRule[fnValuesNs] diff --git a/packages/jss-preset-default/.size-snapshot.json b/packages/jss-preset-default/.size-snapshot.json index 3bbb707b6..d9f048b0f 100644 --- a/packages/jss-preset-default/.size-snapshot.json +++ b/packages/jss-preset-default/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/jss-preset-default.js": { - "bundled": 54715, - "minified": 19504, - "gzipped": 6471 + "bundled": 54845, + "minified": 19508, + "gzipped": 6474 }, "dist/jss-preset-default.min.js": { - "bundled": 53961, - "minified": 19046, - "gzipped": 6262 + "bundled": 54091, + "minified": 19050, + "gzipped": 6264 }, "dist/jss-preset-default.cjs.js": { "bundled": 1329, diff --git a/packages/jss-starter-kit/.size-snapshot.json b/packages/jss-starter-kit/.size-snapshot.json index 895f54703..b4b20b7ff 100644 --- a/packages/jss-starter-kit/.size-snapshot.json +++ b/packages/jss-starter-kit/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/jss-starter-kit.js": { - "bundled": 70257, - "minified": 29544, - "gzipped": 9093 + "bundled": 70387, + "minified": 29548, + "gzipped": 9100 }, "dist/jss-starter-kit.min.js": { - "bundled": 69503, - "minified": 29086, - "gzipped": 8883 + "bundled": 69633, + "minified": 29090, + "gzipped": 8886 }, "dist/jss-starter-kit.cjs.js": { "bundled": 2592, diff --git a/packages/react-jss/.size-snapshot.json b/packages/react-jss/.size-snapshot.json index f55261ed5..4b32994cb 100644 --- a/packages/react-jss/.size-snapshot.json +++ b/packages/react-jss/.size-snapshot.json @@ -1,13 +1,13 @@ { "dist/react-jss.js": { - "bundled": 168992, - "minified": 58283, - "gzipped": 19042 + "bundled": 169122, + "minified": 58287, + "gzipped": 19043 }, "dist/react-jss.min.js": { - "bundled": 112324, - "minified": 41678, - "gzipped": 14127 + "bundled": 112454, + "minified": 41682, + "gzipped": 14129 }, "dist/react-jss.cjs.js": { "bundled": 27019, From f2641034fbd038d6f0ae28af7789abc20b9cf886 Mon Sep 17 00:00:00 2001 From: Oleg Isonen Date: Tue, 16 Jul 2019 16:32:35 +0200 Subject: [PATCH 2/2] changelog --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 781e87ace..0f691ff19 100755 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ Since you are interested in what happens next, in case, you work for a for-profi ### Bug fixes - [react-jss] Fix nested dynamic rule updating ([1144](https://github.com/cssinjs/jss/pull/1144)) +- [jss] Support falsy value from fn rule ([1164](https://github.com/cssinjs/jss/pull/1164)) ---