Skip to content

Instantly share code, notes, and snippets.

Avatar
🍺

Richard Zilahi zilahir

🍺
View GitHub Profile
@zilahir
zilahir / LoadAssets.tsx
Created Dec 26, 2020
expo loading assets custom wrapper
View LoadAssets.tsx
// some stuff here
export type FontSouce = Parameters<typeof Font.loadAsync>[0];
const usePromiseAll = (
promises: Promise<void | void[] | Asset[]>[],
cb: () => void
) =>
useEffect(() => {
(async () => {
await Promise.all(promises);
cb();
View docker-compose.yml
version: '2'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./<path-to-folder/backend>:/code/Backend
- ./<path-to-folde/frontend>:/code/Frontend
@zilahir
zilahir / alpr-nodejs-raspberrypi.js
Created Sep 11, 2020 — forked from aioverlords/alpr-nodejs-raspberrypi.js
ALPR License Plate Detection for Raspberry PI written in Node.js
View alpr-nodejs-raspberrypi.js
const PiCamera = require('pi-camera');
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
setInterval(function() {
var path = './' + getRandomInt(500) + '.jpg';
View tags.js
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(() => {
View guide.md

React Guide

Table Of Contents

  1. Components
  2. Development Environment
  3. Deployment
  4. General rules 4.1 Hooks 4.2 Project structure
View findInDeepArray.js
/**
* @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 / index.js
Created Apr 23, 2020
routeTransition
View index.js
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,
View useStructure.js
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(
View form.js
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)
@zilahir
zilahir / Home.js
Created Feb 17, 2020
fetchData with props
View Home.js
/* 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'