MCPcopy
hub / github.com/cssinjs/jss / registerClass

Function registerClass

packages/jss-plugin-compose/src/index.js:10–53  ·  view source on GitHub ↗

* Set selector. * * @param original rule * @param className class string * @return flag indicating function was successfull or not

(rule, className)

Source from the content-addressed store, hash-verified

8 * @return flag indicating function was successfull or not
9 */
10function registerClass(rule, className) {
11 // Skip falsy values
12 if (!className) return true
13
14 // Support array of class names `{composes: ['foo', 'bar']}`
15 if (Array.isArray(className)) {
16 for (let index = 0; index < className.length; index++) {
17 const isSetted = registerClass(rule, className[index])
18 if (!isSetted) return false
19 }
20
21 return true
22 }
23
24 // Support space separated class names `{composes: 'foo bar'}`
25 if (className.indexOf(' ') > -1) {
26 return registerClass(rule, className.split(' '))
27 }
28
29 const {parent} = rule.options
30
31 // It is a ref to a local rule.
32 if (className[0] === '$') {
33 const refRule = parent.getRule(className.substr(1))
34
35 if (!refRule) {
36 warning(false, `[JSS] Referenced rule is not defined. \n${rule.toString()}`)
37 return false
38 }
39
40 if (refRule === rule) {
41 warning(false, `[JSS] Cyclic composition detected. \n${rule.toString()}`)
42 return false
43 }
44
45 parent.classes[rule.key] += ` ${parent.classes[refRule.key]}`
46
47 return true
48 }
49
50 parent.classes[rule.key] += ` ${className}`
51
52 return true
53}
54
55/**
56 * Convert compose property to additional class, remove property from original styles.

Callers 1

onProcessStyleFunction · 0.85

Calls 3

indexOfMethod · 0.65
getRuleMethod · 0.65
toStringMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…