Skip to content

Instantly share code, notes, and snippets.

View cybercris's full-sized avatar
:electron:

Cristiano Soares cybercris

:electron:
View GitHub Profile
#include <Adafruit_NeoPixel.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
#define LED_PIN 8
#define LED_COUNT 12
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
{
"compilerOptions": {
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": true,
"jsx": "react-jsx",
"noEmit": true,
"strict": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
presets: ['module:babel-preset-expo'],
plugins: [
["module:react-native-dotenv", {
"moduleName": "@env",
"path": ".env",
"blacklist": null,
"whitelist": null,
"safe": false,
"allowUndefined": true
}]
const valid = optionalRequiredSchema.isValidSync(state);
@cybercris
cybercris / handlechange.js
Created March 30, 2020 16:15
handlechange
function handleChange(e) {
setState({ optionalObject: { otherData: e.target.value } });
formik.setFieldValue("otherData", e.target.value);
}
@cybercris
cybercris / dynamic.js
Last active March 30, 2020 16:11
html
<form onSubmit={formik.handleSubmit}>
<h5>Handling dynamic validation with formik and yup</h5>
<div
className="text"
style={{ backgroundColor: valid ? "green" : "red" }}
>
Valid Data: {"" + valid}
</div>
<input
type="text"
const formik = useFormik({
initialValues: {
otherData: state.optionalObject.otherData
},
validationSchema: optionalRequiredSchema,
onSubmit: values => {
console.log(values);
}
});
const [state, setState] = useState({
optionalObject: {
otherData: ""
}
});
@cybercris
cybercris / optionalSchema.js
Last active March 30, 2020 15:35
optionalSchema
const optionalRequiredSchema = yup.object().shape({
optionalObject: yup.lazy(value => {
if (value !== undefined) {
yup.mixed().notRequired();
}
return yup.object().shape({
otherData: yup.string().required()
});
})
});