Skip to content

Instantly share code, notes, and snippets.

@jhonsore
jhonsore / string-to-date.ts
Created June 8, 2021 17:45
Converts string to date
export enum DateFormats {
'MDY'=1,
'DMY',
'YMD'
}
export interface IDateFormat {
date: string;
format: DateFormats
}
@jhonsore
jhonsore / guid.js
Created June 8, 2021 17:44
Generate unique id
export default function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;
}
// Auth an user and create it instantly in users collection
firebase.auth().createUserWithEmailAndPassword(email, password)
.then((userCredential) => {
return firebase.firestore().collection('users').doc(userCredential.user.uid)
.set({
field1: 'my-field-value',
field2: 'my-field-value'
);
})
.then(() => {
@jhonsore
jhonsore / rules.json
Last active August 22, 2021 12:03
Firestore rules
/**
* libera leitura e escrita em todos os documentos
*/
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
@jhonsore
jhonsore / simple-rules-in-nodes.json
Last active May 23, 2021 19:07
Firebase Realtime Database rules examples
/**
* libera a leitura e nega a escrita, apenas poderá ser feita a escrita diretamente no dashboard do firebase
*/
{
"rules": {
"infos": {
".read": "true",
".write": "false"
}
}
import React from 'react';
import Box from './component-with-children';
class Component extends React.Component {
render() {
return <Box>
<div>kid 1</div>
<div>kid 2</div>
<div>kid 3</div>
</Box>
@jhonsore
jhonsore / button.tsx
Last active March 17, 2021 19:23
Typescript tips
import React from 'react';
interface Props extends React.ButtonHTMLAttributes<HTMLButtonElement>{
text: string;
}
const Input: React.FC<Props> = props => {
return <button { ...props }>{props.text}</button>
}
button{
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: 0;
-webkit-border-radius: 0;
-moz-border-radius: 0;
background:none;
border:none;
outline:none;
function validateDate(y, m, d) {
var month = m-1;
var _date = new Date(y, month, d);
if(isNaN(_date)) return false;
if (_date.getFullYear() != y
|| _date.getMonth() != month
|| _date.getDate() != d) {
return false;
}
@jhonsore
jhonsore / update-object.js
Created December 2, 2020 17:58
useState() hooks update for object
const [state, setState] = useState({ name: "", surname: "" });
const handleChange = e => {
const { name, value } = e.target;
setState(prevState => ({
...prevState,
[name]: value
}));
};
<input