Skip to content

Instantly share code, notes, and snippets.

View ricardocanelas's full-sized avatar
🦈

Ricardo Canelas ricardocanelas

🦈
View GitHub Profile
@horaciosystem
horaciosystem / Layout.js
Last active January 27, 2021 21:32
Sidebar [react, reakit, tailwindcss, postcss, postcss-nested]
import {
useDialogState,
Dialog,
DialogDisclosure,
DialogBackdrop,
} from "reakit/Dialog"
import styles from "./Layout.module.css"
function Layout({ children }) {
const dialog = useDialogState({ animated: true })
@sibelius
sibelius / faviconGen.sh
Created June 23, 2020 11:12
Generate a favicon from an image or svg file
#!/usr/bin/env bash
magick convert $1 -resize 16x16 16.png
magick convert $1 -resize 32x32 32.png
magick convert $1 -resize 48x48 48.png
magick convert 16.png 32.png 48.png favicon.ico
@metaperl
metaperl / mt5_pending_order.py
Created June 19, 2020 20:22
Create pending orders in Python MT5 via pymt5adapter
import MetaTrader5 as mt5
import pymt5adapter
from pymt5adapter.order import Order
from pymt5adapter.symbol import Symbol
class MySymbol(Symbol):
def pips(self, amount):
return amount * 10 * self.point
@sibelius
sibelius / useSWReg.tsx
Created May 26, 2020 11:57
use Service Worker Registration hook
import firebase from 'firebase/app';
import 'firebase/messaging';
import { useEffect, useRef } from 'react';
import config from '../config';
import firebaseConfig from './firebaseConfig';
import { PushTokenAddMutation } from './__generated__/PushTokenAddMutation.graphql';
import { PushTokenAdd, USER_PUSHENDPOINT_TYPE } from './PushTokenAddMutation';
- name: Restore yarn workspaces
id: yarn-cache
uses: actions/cache@master
with:
path: |
node_modules
*/*/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
@developit
developit / *polkompress.md
Last active April 13, 2021 22:50
polkompress

Polkompress

A tiny zero-dependency compression middleware for polka (& express!) with native Brotli support.

@sibelius
sibelius / useFastField.tsx
Last active May 10, 2023 04:07
useFastField that uses local state `onChange` and sync back to formik only `onBlur`
import React, { useState, useEffect } from 'react';
import { useField, FieldHookConfig, FieldInputProps, FieldMetaProps, FieldHelperProps } from 'formik';
import { useDebouncedCallback } from 'use-debounce';
const DEBOUNCE_DELAY = 300;
export function useFastField<Val = any>(
propsOrFieldName: string | FieldHookConfig<Val>,
): [FieldInputProps<Val>, FieldMetaProps<Val>, FieldHelperProps<Val>] {
const [field, meta, helpers] = useField<Val>(propsOrFieldName);
@heshamelmasry77
heshamelmasry77 / nextjs-hoc-authorization.js
Created May 14, 2020 18:23 — forked from whoisryosuke/nextjs-hoc-authorization.js
ReactJS - NextJS - A HOC for wrapping NextJS pages in an authentication check. Checks for getInitialProps on the child component and runs it, so you still get SSR from the page. Also includes a user agent for Material UI.
import React, {Component} from 'react'
import Router from 'next/router'
import AuthService from './AuthService'
export default function withAuth(AuthComponent) {
const Auth = new AuthService('http://localhost')
return class Authenticated extends Component {
static async getInitialProps(ctx) {
// Ensures material-ui renders the correct css prefixes server-side
@brunolemos
brunolemos / linkedin-unfollow-everyone.js
Last active December 23, 2024 12:51
Unfollow everyone on Linkedin
(() => {
let count = 0;
function getAllButtons() {
return document.querySelectorAll('button.is-following') || [];
}
async function unfollowAll() {
const buttons = getAllButtons();
@sibelius
sibelius / AutocompleteRelay.tsx
Last active March 23, 2024 10:13
@material-ui Autocomplete lab with react-window + infinite-loader for GraphQL/Relay connections
import React, { useRef, useState } from 'react';
import { Typography } from '@material-ui/core';
import TextField from '@material-ui/core/TextField';
import CircularProgress from '@material-ui/core/CircularProgress';
import Autocomplete, {
AutocompleteChangeDetails,
AutocompleteChangeReason,
AutocompleteProps
} from '@material-ui/lab/Autocomplete';