Skip to content

Instantly share code, notes, and snippets.

View zilahir's full-sized avatar
🍺

Richard Zilahi zilahir

🍺
View GitHub Profile
# Uses
## Editor
- [Visual Studio Code](https://code.visualstudio.com/download) (settings [here](https://gist.github.com/diurivj/ca5222271a32336273ac1c5a168e8166))
- [lucy](https://marketplace.visualstudio.com/items?itemName=juliettepretot.lucy-vscode) editor theme by [juliettepretot](https://marketplace.visualstudio.com/publishers/juliettepretot)
- [Dank Mono](https://dank.sh/) font by [Phil Plückthun](https://twitter.com/_philpl)
## Chrome Extensions
- [JSON Viewer](https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh)
- [React Developer Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi)
@zilahir
zilahir / getDaysInMonth.js
Created January 12, 2020 21:33
get all day iin a month
const d = new Date()
const currentYear = d.getFullYear()
const months = Array(12).fill().map((e,i) => i)
// console.debug('currentYear', currentYear)
// console.debug(months)
const getDaysInMonth = (month, year) => (new Array(31)).fill('').map((v,i)=>new Date(year,month-1,i+1)).filter(v=>v.getMonth()===month-1)
console.debug(getDaysInMonth(1, currentYear))
@zilahir
zilahir / Home.js
Created February 17, 2020 14:10
fetchData with props
/* eslint-disable react/prop-types */
/* eslint-disable no-unused-vars */
/* eslint-disable no-console */
import React, { useState, useEffect } from 'react'
import { api } from '../api'
import { useServerData } from '../state/serverDataContext'
import Cover from './Cover'
import Header from './Header'
import styles from '../styles/root/Root.module.scss'
@zilahir
zilahir / form.js
Created March 3, 2020 22:04
form
import React, { useState } from 'react';
import { submitForm } from '../../store/actions/submitForm'
import Success from '../common/Success';
const ContactForm = () => {
const [name, setName] = useState('')
const [email, setEmail] = useState('')
const [message, setMessage] = useState('')
const [isAnimationHidden, showAnimation] = useState(true)
const [counter, setCounter] = useState(null)
import { useState, useCallback } from 'react'
import { useStore } from 'react-redux'
export const useStructure = param => {
const store = useStore()
const fetchedStructure = store.getState().fetchStructure.structure
return {
structure,
setStructure,
getParentTagList: useCallback(tagId => setStructure(
@zilahir
zilahir / index.js
Created April 23, 2020 11:56
routeTransition
import React from 'react'
import { AnimatePresence } from 'framer-motion'
import { useSelector } from 'react-redux'
import { Route, Switch, useLocation, Redirect } from 'react-router-dom'
import { MountTransition } from '../MountTransition'
export const RouteTransition = ({
children,
exact = false,
path,
@zilahir
zilahir / findInDeepArray.js
Created May 7, 2020 10:42
findInDeepArray
/**
* @param {number} tagId the id of the tags we are looking for it's child
* @param {Array} tags array of the level we are looking for the child tags
* @returns {object} object of the found child object
*/
function findTagById(tagId, tags) {
// console.debug("findTagById > Tags", tags);
const result = filter(tags, { item: [{ tag_id: tagId }] });
// console.debug("findTagById > result", result);
return result[0].item.filter(t => t.tag_id === tagId)[0];
@zilahir
zilahir / guide.md
Last active May 18, 2020 09:51
guide

React Guide

Table Of Contents

  1. Components
  2. Development Environment
  3. Deployment
  4. General rules 4.1 Hooks 4.2 Project structure
function handleTagClick(tag, thisLevel) {
reduxDispatch(getContentByTagId(tag.tag_id, authToken))
setLastClickedTag(tag)
const childTagIds = tag.relations.relation
const isRendered = tagState[thisLevel + 2]
if (isRendered) {
const tempTagState = tagState
Object.keys(tagState).map(curr => {
if (curr > thisLevel + 1) {
setTimeout(() => {
@zilahir
zilahir / alpr-nodejs-raspberrypi.js
Created September 11, 2020 15:44 — forked from dataslayermedia/alpr-nodejs-raspberrypi.js
ALPR License Plate Detection for Raspberry PI written in Node.js
const PiCamera = require('pi-camera');
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
setInterval(function() {
var path = './' + getRandomInt(500) + '.jpg';