Procházet zdrojové kódy

add 'none' keyword to PISS shadow definiton that equals empty array

Henry Jameson před 2 měsíci
rodič
revize
ab8907909b

+ 2 - 1
src/components/button_unstyled.style.js

@@ -16,7 +16,8 @@ export default {
     {
       directives: {
         background: '#ffffff',
-        opacity: 0
+        opacity: 0,
+        shadow: []
       }
     },
     {

+ 2 - 1
src/components/panel_header.style.js

@@ -16,7 +16,8 @@ export default {
       component: 'PanelHeader',
       directives: {
         backgroundNoCssColor: 'yes',
-        background: '--fg'
+        background: '--fg',
+        shadow: []
       }
     }
   ]

+ 5 - 1
src/services/theme_data/iss_deserializer.js

@@ -138,7 +138,11 @@ export const deserialize = (input) => {
         const [property, value] = d.split(':')
         let realValue = value.trim()
         if (property === 'shadow') {
-          realValue = value.split(',').map(v => parseShadow(v.trim()))
+          if (realValue === 'none') {
+            realValue = []
+          } else {
+            realValue = value.split(',').map(v => parseShadow(v.trim()))
+          }
         } if (!Number.isNaN(Number(value))) {
           realValue = Number(value)
         }

+ 5 - 1
src/services/theme_data/iss_serializer.js

@@ -32,7 +32,11 @@ export const serialize = (ruleset) => {
       } else {
         switch (directive) {
           case 'shadow':
-            return `  ${directive}: ${value.map(serializeShadow).join(', ')}`
+            if (value.length > 0) {
+              return `  ${directive}: ${value.map(serializeShadow).join(', ')}`
+            } else {
+              return `  ${directive}: none`
+            }
           default:
             return `  ${directive}: ${value}`
         }

+ 2 - 2
test/unit/specs/services/theme_data/iss_deserializer.spec.js

@@ -19,7 +19,7 @@ describe('ISS (de)serialization', () => {
   /*
   // Debug snippet
   const onlyComponent = componentsContext('./components/panel_header.style.js').default
-  it(`(De)serialization of component ${onlyComponent.name} works`, () => {
+  it.only(`(De)serialization of component ${onlyComponent.name} works`, () => {
     const normalized = onlyComponent.defaultRules.map(x => ({ component: onlyComponent.name, ...x }))
     console.log('BEGIN INPUT ================')
     console.log(normalized)
@@ -36,5 +36,5 @@ describe('ISS (de)serialization', () => {
     // for some reason comparing objects directly fails the assert
     expect(JSON.stringify(deserialized, null, 2)).to.equal(JSON.stringify(normalized, null, 2))
   })
-  */
+  /* */
 })