Rev 2904 | Rev 3692 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import htmlParse from 'html-react-parser'const jsonToParams = (data = {}) => {if (!data) {return false}const formBody = []for (const property in data) {const encodedKey = encodeURIComponent(property)// @ts-ignoreconst encodedValue = encodeURIComponent(data[property])formBody.push(encodedKey + '=' + encodedValue)}const _formBody = formBody.join('&')return _formBody}const filterItems = (query = '', items = []) => {if (!query) {return items}return items.filter((conversation) =>conversation.name.toLowerCase().includes(query.toLowerCase()))}const debounce = (func, timeout = 300) => {let timerreturn (...args) => {clearTimeout(timer)timer = setTimeout(() => {func.apply(this, args)}, timeout)}}const camalize = function camalize(str) {return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase())}const scrollToBottom = (element) => {if (!element.current) {return false}element.scrollTop = element.scrollHeight * 9}const formatObjectToArray = (object) => {if (!object) return []return Object.entries(object).map(([key, value]) => ({name: value,value: key}))}const isPromise = (obj) => {return ((!!obj && obj[Symbol.toStringTag] === 'Promise') ||obj[Symbol.toStringTag] === 'AsyncFunction')}const parse = (str) => {if (typeof str !== 'string') return ''const stripText = str.replace(/<p>|<\/p>/g, '')return htmlParse(stripText)}export {jsonToParams,debounce,scrollToBottom,filterItems,camalize,formatObjectToArray,isPromise,parse}