import { hex2rgb } from '../color_convert/color_convert.js'
const highlightStyle = (prefs) => {
  if (prefs === undefined) return
  const { color, type } = prefs
  if (typeof color !== 'string') return
  const rgb = hex2rgb(color)
  if (rgb == null) return
  const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`
  const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`
  const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`
  const customProps = {
    '--____highlight-solidColor': solidColor,
    '--____highlight-tintColor': tintColor,
    '--____highlight-tintColor2': tintColor2
  }
  if (type === 'striped') {
    return {
      backgroundImage: [
        'repeating-linear-gradient(135deg,',
        `${tintColor} ,`,
        `${tintColor} 20px,`,
        `${tintColor2} 20px,`,
        `${tintColor2} 40px`
      ].join(' '),
      backgroundPosition: '0 0',
      ...customProps
    }
  } else if (type === 'solid') {
    return {
      backgroundColor: tintColor2,
      ...customProps
    }
  } else if (type === 'side') {
    return {
      backgroundImage: [
        'linear-gradient(to right,',
        `${solidColor} ,`,
        `${solidColor} 2px,`,
        'transparent 6px'
      ].join(' '),
      backgroundPosition: '0 0',
      ...customProps
    }
  }
}

const highlightClass = (user) => {
  return 'USER____' + user.screen_name
    .replace(/\./g, '_')
    .replace(/@/g, '_AT_')
}

export {
  highlightClass,
  highlightStyle
}
