Skip to content

Instantly share code, notes, and snippets.

View iammerrick's full-sized avatar

Merrick Christensen iammerrick

View GitHub Profile

Tree

// State Tree itself should be normalized and lean towards flat (sort of like a traditional relational database)
//
{
  // Route Parameters
  params: {
    pageId: 1,
  },
@iammerrick
iammerrick / LazilyLoad.js
Last active August 7, 2019 14:15
Lazily Load Code Declaratively in React + Webpack
import React from 'react';
const toPromise = (load) => (new Promise((resolve) => (
load(resolve)
)));
class LazilyLoad extends React.Component {
constructor() {
super(...arguments);
@iammerrick
iammerrick / LongPressGesture.js
Created August 24, 2016 22:47
Event Augmentation With React
import React from 'react';
import ReactDOM from 'react-dom';
import { getPointRelativeToElement, getDistanceBetweenPoints } from 'utilities/geometry';
const THRESHOLD = 150;
const RANGE = 80;
const SCROLL_RANGE = 5;
const COMPLETE = 1;
const SPEED = 0.015;
class MyWrapper extends React.Component {
componentDidMount() {
this.setState({
instance: new WhateverIAmWrapping(this.node)
});
}
render() {
return (
<div ref={(ref) => this.node } />
{this.state.instance ? (
'use strict';
const SingleEntryPlugin = require('webpack/lib/SingleEntryPlugin');
const webpack = require('webpack');
const CHILD_COMPILER_NAME = 'service-worker-plugin';
class ServiceWorkerPlugin {
constructor(options) {
this.options = options;
}
# CTRL-P - cd into the selected directory
#
__fzfcmd() {
[ ${FZF_TMUX:-1} -eq 1 ] && echo "fzf-tmux -d${FZF_TMUX_HEIGHT:-40%}" || echo "fzf"
}
fzf-cd-widget() {
local cmd="${FZF_CTRL_P_COMMAND:-"command find -L ~ \\( -path '*/\\.*' -o -fstype 'dev' -o -fstype 'proc' \\) -prune \
-o -type d -print 2> /dev/null | sed 1d"}"
setopt localoptions pipefail 2> /dev/null
@iammerrick
iammerrick / PinchZoomPan.js
Last active April 22, 2024 02:54
React Pinch + Zoom + Pan
import React from 'react';
const MIN_SCALE = 1;
const MAX_SCALE = 4;
const SETTLE_RANGE = 0.001;
const ADDITIONAL_LIMIT = 0.2;
const DOUBLE_TAP_THRESHOLD = 300;
const ANIMATION_SPEED = 0.04;
const RESET_ANIMATION_SPEED = 0.08;
const INITIAL_X = 0;
import $ from 'jquery';
import kuidropdown from 'kendo-ui-core/js/kendo.dropdownlist.js';
import React from 'react';
import ReactDOM from 'react-dom';
class KendoDropDownList extends React.Component {
componentDidMount() {
this.synchronize();
}
@iammerrick
iammerrick / LazilyLoad.js
Created June 28, 2016 17:59
Offer both a higher order component and a component for lazily loading modules.
import React from 'react';
const toPromise = (load) => (new Promise((resolve) => (
load(resolve)
)));
class LazilyLoad extends React.Component {
constructor() {
super(...arguments);

CSS Component

.MyComponent {
  @component children;
  background-color: #000;
  
  .icon {
    background: #FF0000;
    @component icon;
 }