Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5130 | Rev 5248 | 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'
5239 stevensc 2
 
1 www 3
const jsonToParams = (data = {}) => {
5130 stevensc 4
  if (!data) { return false } else {
5
    const formBody = []
6
    for (const property in data) {
7
      const encodedKey = encodeURIComponent(property)
8
      // @ts-ignore
9
      const encodedValue = encodeURIComponent(data[property])
10
      formBody.push(encodedKey + '=' + encodedValue)
1 www 11
    }
5130 stevensc 12
    const _formBody = formBody.join('&')
13
    return _formBody
14
  }
1 www 15
}
5239 stevensc 16
 
1 www 17
const useWindowSize = () => {
5130 stevensc 18
  const [size, setSize] = React.useState([0, 0])
19
  React.useLayoutEffect(() => {
20
    function updateSize () {
21
      setSize([window.innerWidth, window.innerHeight])
22
    }
23
    window.addEventListener('resize', updateSize)
24
    updateSize()
25
    return () => window.removeEventListener('resize', updateSize)
26
  }, [])
27
  return size
1 www 28
}
5130 stevensc 29
 
30
const debounce = (func, timeout = 300) => {
31
  let timer
32
  return (...args) => {
33
    clearTimeout(timer)
34
    timer = setTimeout(() => { func.apply(this, args) }, timeout)
35
  }
36
}
37
 
5239 stevensc 38
const scrollToBottom = (element) => {
39
  element.scrollTop = element.scrollHeight * 9
40
}
41
 
1 www 42
export {
5130 stevensc 43
  useWindowSize,
44
  jsonToParams,
5239 stevensc 45
  debounce,
46
  scrollToBottom
5130 stevensc 47
}