/* eslint-disable */

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * From React 16.3.0
 * @noflow
 */

import { dangerousStyleValue } from './dangerousStyleValue'

/**
 * Sets the value for multiple styles on a node.  If a value is specified as
 * '' (empty string), the corresponding style property will be unset.
 *
 * @param {DOMElement} node
 * @param {object} styles
 */
export function setValueForStyles(node, styles) {
  const style = node.style
  for (let styleName in styles) {
    if (!styles.hasOwnProperty(styleName)) {
      continue
    }
    const isCustomProperty = styleName.indexOf('--') === 0
    const styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty)
    if (styleName === 'float') {
      styleName = 'cssFloat'
    }
    if (isCustomProperty) {
      style.setProperty(styleName, styleValue)
    } else {
      style[styleName] = styleValue
    }
  }
}
