Skip to content

Commit

Permalink
Export Helpers (#613)
Browse files Browse the repository at this point in the history
  • Loading branch information
casesandberg authored Apr 29, 2019
1 parent 0e7cf0e commit f34fb60
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 54 deletions.
108 changes: 54 additions & 54 deletions src/helpers/color.js
Original file line number Diff line number Diff line change
@@ -1,67 +1,65 @@
import each from 'lodash/each'
import tinycolor from 'tinycolor2'

export default {
simpleCheckForValidColor(data) {
const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v']
let checked = 0
let passed = 0
each(keysToCheck, (letter) => {
if (data[letter]) {
checked += 1
if (!isNaN(data[letter])) {
export const simpleCheckForValidColor = (data) => {
const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v']
let checked = 0
let passed = 0
each(keysToCheck, (letter) => {
if (data[letter]) {
checked += 1
if (!isNaN(data[letter])) {
passed += 1
}
if (letter === 's' || letter === 'l') {
const percentPatt = /^\d+%$/
if (percentPatt.test(data[letter])) {
passed += 1
}
if (letter === 's' || letter === 'l') {
const percentPatt = /^\d+%$/
if (percentPatt.test(data[letter])) {
passed += 1
}
}
}
})
return (checked === passed) ? data : false
},

toState(data, oldHue) {
const color = data.hex ? tinycolor(data.hex) : tinycolor(data)
const hsl = color.toHsl()
const hsv = color.toHsv()
const rgb = color.toRgb()
const hex = color.toHex()
if (hsl.s === 0) {
hsl.h = oldHue || 0
hsv.h = oldHue || 0
}
const transparent = hex === '000000' && rgb.a === 0
})
return (checked === passed) ? data : false
}

return {
hsl,
hex: transparent ? 'transparent' : `#${ hex }`,
rgb,
hsv,
oldHue: data.h || oldHue || hsl.h,
source: data.source,
}
},
export const toState = (data, oldHue) => {
const color = data.hex ? tinycolor(data.hex) : tinycolor(data)
const hsl = color.toHsl()
const hsv = color.toHsv()
const rgb = color.toRgb()
const hex = color.toHex()
if (hsl.s === 0) {
hsl.h = oldHue || 0
hsv.h = oldHue || 0
}
const transparent = hex === '000000' && rgb.a === 0

isValidHex(hex) {
// disable hex4 and hex8
const lh = (String(hex).charAt(0) === '#') ? 1 : 0
return hex.length !== (4 + lh) && hex.length < (7 + lh) && tinycolor(hex).isValid()
},
return {
hsl,
hex: transparent ? 'transparent' : `#${ hex }`,
rgb,
hsv,
oldHue: data.h || oldHue || hsl.h,
source: data.source,
}
}

getContrastingColor(data) {
if (!data) {
return '#fff'
}
const col = this.toState(data)
if (col.hex === 'transparent') {
return 'rgba(0,0,0,0.4)'
}
const yiq = ((col.rgb.r * 299) + (col.rgb.g * 587) + (col.rgb.b * 114)) / 1000
return (yiq >= 128) ? '#000' : '#fff'
},
export const isValidHex = (hex) => {
// disable hex4 and hex8
const lh = (String(hex).charAt(0) === '#') ? 1 : 0
return hex.length !== (4 + lh) && hex.length < (7 + lh) && tinycolor(hex).isValid()
}

export const getContrastingColor = (data) => {
if (!data) {
return '#fff'
}
const col = toState(data)
if (col.hex === 'transparent') {
return 'rgba(0,0,0,0.4)'
}
const yiq = ((col.rgb.r * 299) + (col.rgb.g * 587) + (col.rgb.b * 114)) / 1000
return (yiq >= 128) ? '#000' : '#fff'
}

export const red = {
Expand All @@ -70,3 +68,5 @@ export const red = {
rgb: { r: 255, g: 0, b: 0, a: 1 },
hsv: { h: 0, s: 1, v: 1, a: 1 },
}

export default exports

This comment has been minimized.

Copy link
@karthickthankyou

karthickthankyou Oct 28, 2020

This export default exports is causing

Uncaught ReferenceError: exports is not defined

It used to be exports.default = exports;. Where the exports object was having the functions and objects. So the line 72 is not required anymore. We can safely remove the line.

This comment has been minimized.

Copy link
@atfzl

atfzl Oct 28, 2020

Collaborator

Currently being fixed in #772

2 changes: 2 additions & 0 deletions src/helpers/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './checkboard'
export * from './color'

0 comments on commit f34fb60

Please sign in to comment.