Skip to content

Instantly share code, notes, and snippets.

View ddgromit's full-sized avatar

Derek Dahmer ddgromit

  • Alchemy
  • San Francisco, CA
View GitHub Profile
// WeatherPage.js
class WeatherPage extends React.Component {
constructor() {
this.state = {
loading: true,
temperature: null,
error: null,
}
}
// WeatherPage.js
import LoadingContainer from './LoadingContainer';
class WeatherPage extends React.Component {
// constructor, componentWillMount, etc...
render() {
return (
// LoadingContainer.js
class LoadingContainer extends React.Component {
render() {
if (this.props.loading) {
return (
<div>
Loading...
</div>
);
import React from 'react'
import styled from 'styled-components';
class Blah extends React.Component {
render() { return <div />; }
}
styled(Blah);
@ddgromit
ddgromit / groupByAdjacent.js
Created December 5, 2017 01:33
Groups adjacent elements of an array that satisfy an equality function.
/* @flow */
function groupByAdjacent<T>(arr: Array<T>, eq: (T, T) => boolean): Array<Array<T>> {
return arr.reduce((prev, curr) => {
if (prev.length && eq(curr, prev[prev.length - 1][0])) {
prev[prev.length - 1].push(curr);
} else {
prev.push([curr]);
}
return prev;
}, []);
@ddgromit
ddgromit / snippets.cson
Last active December 6, 2017 22:57
Atom Snippets
'.source.js':
'[DD] query renderer':
prefix: 'queryrendererfile'
body: """
/* @flow */
import React from 'react';
import { graphql } from 'react-relay/compat';
import DefaultQueryRenderer from 'components/DefaultQueryRenderer';
import type { $1QueryResponse } from './__generated__/$1Query.graphql';