Skip to content

Instantly share code, notes, and snippets.

// handy method to create a Higher Order Component out of a
// Render Prop Component (like a Context.Consumer).
// handles, statics, displayName, refs, and value forwarding
function createHOCFromRenderProp({prop, Consumer}) {
return Component => {
function Wrapper(props, ref) {
return (
<Consumer>
{value => <Component {...{...props, [prop]: value, ref}} />}
@arekbartnik
arekbartnik / figma-project-stats.js
Created June 21, 2018 19:20 — forked from rsms/figma-project-stats.js
Script that generates statistics for a Figma project, like number of files, frames, versions etc
//
// Figma project stats
// Pulls statistics like number of files, frames, versions etc for a project.
//
// Usage:
// export FIGMA_API_ACCESS_TOKEN='your-token'
// node figma-project-stats.js <project-id>
//
// You can generate tokens in your account settings or at
// https://www.figma.com/developers/explorer#personal-access-token
let UserContext = React.createContext();
class App extends React.Component {
state = {
user: null,
setUser: user => {
this.setState({ user });
}
};
@arekbartnik
arekbartnik / App.js
Created November 11, 2018 22:22 — forked from ryanflorence/App.js
import React, { Suspense, useState } from "react";
import { unstable_createResource as createResource } from "react-cache";
import {
Combobox,
ComboboxInput,
ComboboxList,
ComboboxOption
} from "./Combobox2.js";
function App({ tabIndex, navigate }) {
@arekbartnik
arekbartnik / js-encode-decode.md
Created January 20, 2020 20:31 — forked from yidas/js-encode-decode.md
JavaScript HTML Entities Encode & Decode
@arekbartnik
arekbartnik / Random-string
Last active February 20, 2020 15:16 — forked from 6174/Random-string
Generate a random string in JavaScript In a short and fast way!
[...Array(10)].map(i=>(~~(Math.random()*36)).toString(36)).join('')
(Math.random()*0xFFFFFF<<0).toString(16);
Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
@arekbartnik
arekbartnik / multiple_ssh_setting.md
Created February 20, 2020 22:40 — forked from jexchan/multiple_ssh_setting.md
Multiple SSH keys for different github accounts

Multiple SSH Keys settings for different github account

create different public key

create different ssh key according the article Mac Set-Up Git

$ ssh-keygen -t rsa -C "your_email@youremail.com"
function dominantColorRGBA(pxv :ArrayLike<int>, pxcount :int, stride :int) :RGBA {
let cm = new Map<int,int[]>()
// average and count RGB values
for (let i = 0; i < pxcount; i += stride) {
let r = pxv[i], g = pxv[i + 1], b = pxv[i + 2], a = pxv[i + 3]
// key = (a << 24) + (r << 16) + (g << 8) + b
let key = (r << 16) + (g << 8) + b
// update or store entry in temporary map.

This is an alternative to the Modern Script Loading tchnique, that doesn't need to wait for the load event.

Compatibility

This technique has been successfully tested down to IE9.

<!DOCTYPE html>
<html lang="en">
@arekbartnik
arekbartnik / hooked-style.js
Created May 3, 2020 18:09 — forked from WebReflection/hooked-style.js
A way to inject once per selector global styles, for more portable components.
import {define as hookedDefinition} from 'hooked-elements'; // or wicked-
import css from 'ustyler';
export const define = (selector, definition) => {
// let the library throw on duplicated selectors
const result = hookedDefinition(selector, definition);
// add styles for this selector
if (definition.style) css(definition.style);
// return the wicked/hooked magic 🌈
return result;