Skip to content

Instantly share code, notes, and snippets.

View rafabarbosa's full-sized avatar
:octocat:
coding

Rafael Barbosa rafabarbosa

:octocat:
coding
  • Sergipe, Brazil
View GitHub Profile
@rafabarbosa
rafabarbosa / Form.tsx
Created May 24, 2022 20:24 — forked from pjchender/Form.tsx
Nested Object Fields in React Hook Form
import { DevTool } from '@hookform/devtools';
import { yupResolver } from '@hookform/resolvers/yup';
import { Button, makeStyles, TextField } from '@material-ui/core';
import { Controller, SubmitHandler, useForm } from 'react-hook-form';
import * as yup from 'yup';
const useStyles = makeStyles(theme => ({
root: {
display: 'flex',
flexDirection: 'column',
@rafabarbosa
rafabarbosa / Finance.excel.rate.js
Created January 29, 2021 12:08 — forked from kucukharf/Finance.excel.rate.js
Excel RATE() Javascript Function
/*!
* @fileOverview Finance Excel Rate Formula Javascript Equivalent
* @version 1.0.0
*
* @author Burak Arslan @kucukharf http://www.github.com/kucukharf
* @license
* Copyright (c) 2010-2018 Burak Arslan
* Licensed under Creative Commons (CC) license
* @usage RATE($periods, $payment, $present, $future, $type, $guess)
*/
@rafabarbosa
rafabarbosa / ExcelFormulas.js
Created January 29, 2021 12:07 — forked from pies/ExcelFormulas.js
Few Excel formulas - PMT, PPMT, XIRR - expressed in Javascript
/* Based on
* - EGM Mathematical Finance class by Enrique Garcia M. <egarcia@egm.co>
* - A Guide to the PMT, FV, IPMT and PPMT Functions by Kevin (aka MWVisa1)
*/
var ExcelFormulas = {
PVIF: function(rate, nper) {
return Math.pow(1 + rate, nper);
},
@rafabarbosa
rafabarbosa / _readme.md
Created August 31, 2020 12:20 — forked from andywer/_readme.md
React - Functional error boundaries

React - Functional error boundaries

Thanks to React hooks you have now happily turned all your classes into functional components.

Wait, all your components? Not quite. There is one thing that can still only be implemented using classes: Error boundaries.

There is just no functional equivalent for componentDidCatch and deriveStateFromError yet.

Proposed solution

// Add a 401 response interceptor
window.axios.interceptors.response.use(function (response) {
return response;
}, function (error) {
if (401 === error.response.status) {
swal({
title: "Session Expired",
text: "Your session has expired. Would you like to be redirected to the login page?",
type: "warning",
showCancelButton: true,
@rafabarbosa
rafabarbosa / input.jsx
Created June 1, 2020 02:32
Adicionando formatação dinâmica CPF ou CNPJ no input de acordo com a quantidade de números informados
import React, { useCallback } from 'react';
const Input = ({ ...props }) => {
const formatarCampo = useCallback(event => {
let value = event.currentTarget.value;
if (value.length <= 11) {
value = value.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/g,"\$1.\$2.\$3\-\$4");
} else {
value = value.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/g,"\$1.\$2.\$3\/\$4\-\$5");
@rafabarbosa
rafabarbosa / app.js
Created April 24, 2020 13:12
Listando e atualizando lista de checkboxs
import React, { useState } from "react";
export default function App () {
const [cursos, setCursos] = useState([
{ name: 'zero', status: true },
{ name: 'primeiro', status: true },
{ name: 'segundo', status: false },
{ name: 'terceiro', status: false },
{ name: 'quarto', status: true },
@rafabarbosa
rafabarbosa / main.js
Created April 17, 2020 01:11
Handling multi select using ReactJS
import React, { Component } from 'react';
class App extends Component {
state = {
elementos: ['1', '2']
}
componentDidMount () {
console.log('carregado: ', this.state.elementos);
@rafabarbosa
rafabarbosa / vue.html
Created March 11, 2020 17:14
Consumindo Github e mostrando a hora em tempo real
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
@rafabarbosa
rafabarbosa / index.markdown
Created March 4, 2020 20:11
Integrações RD Station - PHP

Integrações RD Station

PHP

Muitos sites em PHP possuem uma página que é um script para enviar o email de contato ou tratar o preenchimento de algum formulário.

Para fazer com que essa página envie os dados para o CRM do RD Station, é só inserir nosso script de integração em seu código e fazer a chamada quando for controlar a submissão dos dados.

Script para integração