From b85cd9eeed362a329deaf5dcf5ff4b2aa642db37 Mon Sep 17 00:00:00 2001 From: Babis Kanellopoulos Date: Thu, 12 Jan 2023 12:03:57 +0200 Subject: [PATCH 1/3] docs: include dynamic styles in docs --- docs/rules/no-unused-styles.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/rules/no-unused-styles.md b/docs/rules/no-unused-styles.md index dca7578..86b8225 100644 --- a/docs/rules/no-unused-styles.md +++ b/docs/rules/no-unused-styles.md @@ -95,6 +95,23 @@ const Hello = React.createClass({ } }); ``` + +Dynamic styles are marked as used only if you use a local variable with the same name as the variable in the actual component . + +```js +const getStyles = () => { + const styles = StyleSheet.create({ + name: {} + }) + return styles; +} +const Hello = React.createClass({ + render: function() { + const styles = getStyles(); + return Hello {this.props.name}; + } +}); +``` Rules are also marked as used when they are used in tags that contain the word `style`. ```js From d63910c0393495224dd7e30334c4ba598022bdd7 Mon Sep 17 00:00:00 2001 From: Babis Kanellopoulos Date: Thu, 12 Jan 2023 12:09:14 +0200 Subject: [PATCH 2/3] chore: update unit tests with dynamic stylesheet cases --- tests/lib/rules/no-unused-styles.js | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/lib/rules/no-unused-styles.js b/tests/lib/rules/no-unused-styles.js index f716639..cb579a8 100644 --- a/tests/lib/rules/no-unused-styles.js +++ b/tests/lib/rules/no-unused-styles.js @@ -31,6 +31,21 @@ const tests = { } }); `, + }, { + code: ` + const getStyles = () => { + const styles = StyleSheet.create({ + name: {} + }) + return styles; + } + const Hello = React.createClass({ + render: function() { + const styles = getStyles(); + return Hello {this.props.name}; + } + }); + `, }, { code: ` const Hello = React.createClass({ @@ -231,6 +246,41 @@ const tests = { errors: [{ message: 'Unused style detected: styles.text', }], + }, { + code: ` + const getStyles = () => { + const styles = StyleSheet.create({ + name: {} + }) + return styles + } + const Hello = React.createClass({ + render: function() { + const globalStyles = getStyles(); + return Hello {this.props.name}; + } + }); + `, + errors: [{ + message: 'Unused style detected: styles.name', + }], + }, { + code: ` + const getStyles = () => { + return StyleSheet.create({ + name: {} + }) + } + const Hello = React.createClass({ + render: function() { + const globalStyles = getStyles(); + return Hello {this.props.name}; + } + }); + `, + errors: [{ + message: 'Unused style detected: undefined.name', + }], }, { code: ` const styles = StyleSheet.create({ From 3bb1442f0974c154033dcc404f53873435062944 Mon Sep 17 00:00:00 2001 From: Babis Kanellopoulos Date: Thu, 12 Jan 2023 12:27:28 +0200 Subject: [PATCH 3/3] fix: remove sonarcloud duplication warning --- tests/lib/rules/no-unused-styles.js | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/tests/lib/rules/no-unused-styles.js b/tests/lib/rules/no-unused-styles.js index cb579a8..b2594bd 100644 --- a/tests/lib/rules/no-unused-styles.js +++ b/tests/lib/rules/no-unused-styles.js @@ -249,37 +249,19 @@ const tests = { }, { code: ` const getStyles = () => { - const styles = StyleSheet.create({ - name: {} + return OtherStyleSheet.create({ + text: {} }) - return styles } - const Hello = React.createClass({ - render: function() { - const globalStyles = getStyles(); - return Hello {this.props.name}; - } - }); - `, - errors: [{ - message: 'Unused style detected: styles.name', - }], - }, { - code: ` - const getStyles = () => { - return StyleSheet.create({ - name: {} - }) - } - const Hello = React.createClass({ + const Hi = React.createClass({ render: function() { const globalStyles = getStyles(); - return Hello {this.props.name}; + return Hi {this.props.name}; } }); `, errors: [{ - message: 'Unused style detected: undefined.name', + message: 'Unused style detected: undefined.text', }], }, { code: ` pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy