Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2861 stevensc 1
import htmlParse from 'html-react-parser'
2
 
5 stevensc 3
const jsonToParams = (data = {}) => {
4
  if (!data) {
5
    return false
6
  }
7
  const formBody = []
8
 
9
  for (const property in data) {
10
    const encodedKey = encodeURIComponent(property)
11
 
12
    // @ts-ignore
13
    const encodedValue = encodeURIComponent(data[property])
14
    formBody.push(encodedKey + '=' + encodedValue)
15
  }
16
 
17
  const _formBody = formBody.join('&')
18
 
19
  return _formBody
20
}
21
 
22
const filterItems = (query = '', items = []) => {
23
  if (!query) {
24
    return items
25
  }
26
 
27
  return items.filter((conversation) =>
28
    conversation.name.toLowerCase().includes(query.toLowerCase())
29
  )
30
}
31
 
32
const debounce = (func, timeout = 300) => {
33
  let timer
34
  return (...args) => {
35
    clearTimeout(timer)
36
    timer = setTimeout(() => {
37
      func.apply(this, args)
38
    }, timeout)
39
  }
40
}
41
 
42
const camalize = function camalize(str) {
43
  return str
44
    .toLowerCase()
45
    .replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase())
46
}
47
 
48
const scrollToBottom = (element) => {
49
  if (!element.current) {
50
    return false
51
  }
52
 
53
  element.scrollTop = element.scrollHeight * 9
54
}
55
 
1856 stevensc 56
const formatObjectToArray = (object) => {
2904 stevensc 57
  if (!object) return []
1856 stevensc 58
  return Object.entries(object).map(([key, value]) => ({
59
    name: value,
60
    value: key
61
  }))
62
}
63
 
1904 stevensc 64
const isPromise = (obj) => {
65
  return (
1907 stevensc 66
    (!!obj && obj[Symbol.toStringTag] === 'Promise') ||
67
    obj[Symbol.toStringTag] === 'AsyncFunction'
1904 stevensc 68
  )
69
}
70
 
2864 stevensc 71
const parse = (str) => {
72
  if (typeof str !== 'string') return ''
3032 stevensc 73
  const stripText = str.replace(/<p>|<\/p>/g, '')
74
  return htmlParse(stripText)
2864 stevensc 75
}
2861 stevensc 76
 
1856 stevensc 77
export {
78
  jsonToParams,
79
  debounce,
80
  scrollToBottom,
81
  filterItems,
82
  camalize,
1904 stevensc 83
  formatObjectToArray,
2861 stevensc 84
  isPromise,
85
  parse
1856 stevensc 86
}