/* Dependencies */ import { Alert } from 'react-native' import type { AlertButton, AlertOptions } from 'react-native' /* Libraries */ import NetInfo from '@react-native-community/netinfo' /* Types */ type DelayedAlert = (title: string, message?: string, buttons?: AlertButton[], options?: AlertOptions, delay?: number) => void /** * @author HPro Informática * * @version 1.0.2 * @description Essa função é um workaround para o problema descrito na issue abaixo: * @see https://github.com/facebook/react-native/issues/10471 * @param title * @param message * @param buttons * @param options * @param delay * @example * delayedAlert('Título', 'Mensagem', ..., 510) */ export const delayedAlert: DelayedAlert = (title, message, buttons, options, delay = 510) => { setTimeout(() => { Alert.alert(title, message, buttons, options) }, delay) } /** * @author HPro Informática * * @version 1.0.2 * @description Obtem infomações de conexão com a rede */ export async function isOnline() { const state = await NetInfo.fetch() return ({ ...state }) } /** * @author HPro Informática * * @version 1.0.1 * @description Função para separar a chave primária do resto da string para validador dos views * @param value string completa * @param parser parseador (padrão - pois geralmente é o que separa as strings. Exemplo: 1 - Igor Prata) * @param uppercase informa se o resultado vai ser em maiúsculo ou não (Exemplo para estados se for true ele valida 'sp' e 'SP') */ export function toView(value: string, parser = '-', uppercase = false) { let ret = value.split(parser)[0] ret = ret.replace(' ', '') if (uppercase) { ret = ret.toUpperCase() } return ret }