// @ts-nocheck
/**
 * Copyright (c) Nicolas Gallagher.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */

import { normalizeColor } from './normalizeColor'
import { normalizeValueWithProperty } from './normalizeValueWithProperty'

const defaultOffset = { height: 0, width: 0 }

export const resolveShadowValue = (style: object): void | string => {
  const { shadowColor, shadowOffset, shadowOpacity, shadowRadius } = style
  const { height, width } = shadowOffset || defaultOffset
  const offsetX = normalizeValueWithProperty(width)
  const offsetY = normalizeValueWithProperty(height)
  const blurRadius = normalizeValueWithProperty(shadowRadius || 0)
  const color = normalizeColor(shadowColor || 'black', shadowOpacity)
  if (color != null && offsetX != null && offsetY != null && blurRadius != null) {
    return `${offsetX} ${offsetY} ${blurRadius} ${color}`
  }
}
