Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1 | Rev 5239 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
import React from 'react'
2
const jsonToParams = (data = {}) => {
5130 stevensc 3
  if (!data) { return false } else {
4
    const formBody = []
5
    for (const property in data) {
6
      const encodedKey = encodeURIComponent(property)
7
      // @ts-ignore
8
      const encodedValue = encodeURIComponent(data[property])
9
      formBody.push(encodedKey + '=' + encodedValue)
1 www 10
    }
5130 stevensc 11
    const _formBody = formBody.join('&')
12
    return _formBody
13
  }
1 www 14
}
15
const useWindowSize = () => {
5130 stevensc 16
  const [size, setSize] = React.useState([0, 0])
17
  React.useLayoutEffect(() => {
18
    function updateSize () {
19
      setSize([window.innerWidth, window.innerHeight])
20
    }
21
    window.addEventListener('resize', updateSize)
22
    updateSize()
23
    return () => window.removeEventListener('resize', updateSize)
24
  }, [])
25
  return size
1 www 26
}
5130 stevensc 27
 
28
const debounce = (func, timeout = 300) => {
29
  let timer
30
  return (...args) => {
31
    clearTimeout(timer)
32
    timer = setTimeout(() => { func.apply(this, args) }, timeout)
33
  }
34
}
35
 
1 www 36
export {
5130 stevensc 37
  useWindowSize,
38
  jsonToParams,
39
  debounce
40
}