Skip to content

Instantly share code, notes, and snippets.


James K Nelson jamesknelson

View GitHub Profile
jamesknelson / react-parent-context-patch.js
Last active Jan 9, 2016
Use parent context instead of owner context in facebook/react (#2112)
View react-parent-context-patch.js
var ReactInstanceMap = require("react/lib/ReactInstanceMap");
var ReactLifeCycle = require("react/lib/ReactLifeCycle");
var ReactNativeComponent = require("react/lib/ReactNativeComponent");
var ReactReconciler = require("react/lib/ReactReconciler");
var emptyObject = require("react/lib/emptyObject");
var invariant = require("react/lib/invariant");
var warning = require("react/lib/warning");
var ReactCompositeComponentMixin = require('react/lib/ReactCompositeComponent').Mixin;
jamesknelson / BlackTriangle.js
Last active Apr 8, 2019
A black triangle. It spins if ES6 works, otherwise it doesn't.
View BlackTriangle.js
export default class BlackTriangle {
constructor(selector) {
this.angle = 0;
this.innerEl = document.querySelector(selector).querySelector('.BlackTriangle-inner');
rotate(amount) {
this.angle = (this.angle + amount) % 360;
jamesknelson / gist:d18cbc97aeca53675b4e
Created Oct 5, 2015
Raw React `navigated` action
View gist:d18cbc97aeca53675b4e
function navigated() {
// Choose which component to render based on browser URL
var component = window.location.hash == "#/"
? React.createElement('div', {}, "Index Page")
: React.createElement('div', {}, "Not Found")
// Render the new component to the page's #react-app element
jamesknelson / Pitch.mdx
Last active Feb 3, 2017
mdx: A markdown-like format that gives you inline JSX, and compiles to a React stateless function
View Pitch.mdx
junctions.js lets you add routes to your React components.

import Link from './Link' import ButtonTheme from './ButtonTheme' import ExampleSet from './ExampleSet' import ComponentExample from './ComponentExample' import GistVanillaExample from './examples/the-gist-vanilla' import GistSugarFreeExample from './examples/the-gist-sugar-free' import BasicExample from './examples/basic'

View HighlightedCodeBlock.js
import React, { PureComponent, PropTypes } from "react"
import Prism from 'prismjs'
const codeBlockAliases = {
'js': 'jsx',
'html': 'markup',
'mdx': 'markdown',
'md': 'markdown',
View HTTPOperation.ts
import * as Govern from 'govern'
import axios, { AxiosInstance, AxiosResponse, AxiosRequestConfig } from 'axios'
export interface HTTPOperation<Success = any, Rejection = any> {
hasEnded: boolean
isBusy: boolean
wasCancelled: boolean
wasSuccessful: boolean
wasRejected: boolean
View GovernRedux.js
import * as Govern from 'govern'
* This component subscribes to a Redux store, outputting its current state.
* Typically, you'll use this component as an element in another component's
* `subscribe()` method. For example:
* ```js
* class Identity extends Govern.Component {

I want to make a <TextFieldControl> component that passes a <Description> component to its render function.

Rendering a <Description> would automatically add an id to the element, and then add that id to the aria-describedby prop of the associated input.

For example, this component:

const EmailField = ({ error, value, onChange }) =>
View typeof-documentstorage.ts
// typeof DocumentStorage
type DocumentStorage = Batchable<{
willUpdate: false | {
source: boolean | CompoundValueNode<boolean>;
undoHistories: boolean | CompoundValueNode<boolean>;
isAwaitingInitialData: false | {
source: boolean | CompoundValueNode<boolean>;
undoHistories: boolean | CompoundValueNode<boolean>;