/**
 * Convert react style object into css string.
 * @function styleString
 * @param {Object} data
 * @returns {?string}
 */

'use strict'

const React = require('react')
const { createMarkupForStyles } = require('react-dom/lib/CSSPropertyOperations')
const { EOL } = require('os')

/** @lends styleString */
function styleString (data) {
  return Object.keys(data).map((selector) => {
    if (!data[ selector ]) {
      return null
    }
    let style = createMarkupForStyles(data[ selector ], {
      _currentElement: {
        _owner: {
          $tmp: selector,
          getName: 'ApStyleTmp'
        }
      }
    })
    return [
      selector + '{',
      style,
      '}'
    ].filter(Boolean).join(' ')
  }).join(EOL)
}

export default styleString
