Skip to content

Instantly share code, notes, and snippets.

View elsangedy's full-sized avatar
🚀

Munir Ahmed Elsangedy elsangedy

🚀
View GitHub Profile
type VariantValue<T> = { [K in keyof T]?: keyof T[K] }
type Variant = { [k: string]: string }
type VariantConfig = { [k: string]: Variant }
const cns = <T extends VariantConfig>(base: string, variantsConfig?: T, defaultVariants: VariantValue<T> = {}) => (variantsValues: VariantValue<T> = {}): string => {
const variants = Object.entries(variantsConfig || {}).map(([name, values]) => values?.[variantsValues[name] || defaultVariants[name]] ?? '')
return [base, ...variants].filter(Boolean).join(' ')
}
const button = cns(
update table1 t1
set "order" = t2.seq
from (
select id, row_number () over (partition by target_id order by created_at) as seq
from table2
) as t2
where t1.id = t2.id
const S3Client = require('aws-sdk/clients/s3')
const sharp = require('sharp')
const ACCESS_KEY_ID = ''
const SECRET_ACCESS_KEY = ''
const REGION = ''
const BUCKET = ''
const PREFIX = ''
const CHUNK_SIZE = 500
const FILTER = (filesName) => {
@elsangedy
elsangedy / machine.js
Created March 8, 2021 14:24
Generated by XState Viz: https://xstate.js.org/viz
// INSTRUMENT
const fetchMachine = Machine(
{
id: 'device',
initial: 'connection',
context: {
retries: 0
},
states: {
@elsangedy
elsangedy / machine.js
Last active February 26, 2021 04:40
Generated by XState Viz: https://xstate.js.org/viz
// TAP FRONTEND
const appMachine = Machine(
{
id: 'tap',
initial: 'init',
context: {},
on: {
RESTART: {
target: 'init',
@elsangedy
elsangedy / machine.js
Last active April 15, 2021 14:54
Generated by XState Viz: https://xstate.js.org/viz
// TAP BACKEND
const appMachine = Machine(
{
id: 'tap',
context: {},
initial: 'bootstrap',
on: {
RESTART: 'bootstrap',
},
@elsangedy
elsangedy / machine.js
Created November 30, 2020 11:13
Generated by XState Viz: https://xstate.js.org/viz
const fetchMachine = Machine({
initial: 'images',
context: {
images: [],
expenses: [],
category: undefined
},
states: {
images: {
on: {
const Comp = () => {
const { getInputProps } = useImask({
mask: [
{
mask: '000.000.000-00',
},
{
mask: '00.000.000/0000-00',
}
],
if (!process.env.NODE_ENV) {
process.env.NODE_ENV = 'development'
}
const clientEnv = require('react-scripts/config/env')().raw
console.log(clientEnv)
@elsangedy
elsangedy / hooks-as-plugin.jsx
Created November 27, 2019 18:21
hooks-as-plugin.jsx
import React, { useRef, useMemo, useState, useCallback, useEffect } from "react";
import ReactDOM from "react-dom";
function applyHooks(hooks, initial, ...args) {
return hooks.reduce((prev, next) => {
const nextValue = next(prev, ...args);
if (typeof nextValue === "undefined") {
throw new Error("A hook just returned undefined! This is not allowed.");
}