Skip to content

Instantly share code, notes, and snippets.

View JoaoCnh's full-sized avatar
🎯
Focusing

João Cunha JoaoCnh

🎯
Focusing
View GitHub Profile
@JoaoCnh
JoaoCnh / List.js
Created January 19, 2018 00:44
List render props
import React from "react";
import PropTypes from "prop-types";
class List extends React.Component {
static propTypes = {
render: PropTypes.func.isRequired,
url: PropTypes.string.isRequired,
};
state = {
@JoaoCnh
JoaoCnh / CarsList.js
Created January 18, 2018 23:40
Cars list component
export default class CarsList extends React.Component {
state = {
cars: [],
isLoading: false,
};
_fetch = async () => {
const res = await fetch("api/url");
const json = await res.json();
@JoaoCnh
JoaoCnh / ex1.js
Created December 18, 2017 14:18
example file data
JSON.stringify({
fileName: values.file.name,
type: values.file.type,
size: `${values.file.size} bytes`
}, null, 2);
@JoaoCnh
JoaoCnh / ex.jsx
Created December 18, 2017 14:14
jsx formik file upload
<input id="file" name="file" type="file" onChange={(event) => {
setFieldValue("file", event.currentTarget.files[0]);
}} />
@JoaoCnh
JoaoCnh / schema.js
Created September 8, 2017 21:30
Yup Validation 3
Yup.object().shape({
email: Yup.string().email('Invalid email address').required('Email is required!'),
username: Yup.string().required('This man needs a ${path}').when('email', (email, schema) => {
if (email === '[email protected]') {
return schema.label('papidipupi').min(10);
}
return schema.label('babidibiba');
}).test('is-zigzagging', '${path} is not zigzagging', value => value === 'zigzagging'),
});
@JoaoCnh
JoaoCnh / schema.js
Created September 8, 2017 21:18
Yup Validation 2
Yup.object().shape({
email: Yup.string().email('Invalid email address').required('Email is required!'),
username: Yup.string().required('This man needs a ${path}').when('email', (email, schema) => {
if (email === '[email protected]') {
return schema.label('papidipupi').min(10);
}
return schema.label('babidibiba');
});
@JoaoCnh
JoaoCnh / schema.js
Last active September 30, 2023 17:59
Yup conditional validation
Yup.object().shape({
email: Yup.string().email('Invalid email address').required('Email is required!'),
username: Yup.string().required('This man needs a username').when('email', (email, schema) => {
if (email === '[email protected]') { return schema.min(10); }
return schema;
}),
});
@JoaoCnh
JoaoCnh / UserForm.js
Created September 8, 2017 20:46
UserForm
import React from 'react';
import { Formik } from 'formik';
import Yup from 'yup';
import VirtualizedSelect from 'react-virtualized-select';
import 'react-select/dist/react-select.css';
import 'react-virtualized/styles.css';
import 'react-virtualized-select/styles.css';
const imaginaryThings = [
@JoaoCnh
JoaoCnh / index.js
Last active July 9, 2017 23:12
js optimized for loop
// normal loop
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
}
// optimized loop
for (var i = array.length - 1; i >= 0; i--) {
console.log(array[i]);
}
@JoaoCnh
JoaoCnh / jquery-example.js
Created July 9, 2017 22:46
caching jQuery lookups
// bad
function setSidebar() {
$('.sidebar').hide();
// ...
$('.sidebar').css({
'background-color': 'pink',
});
}