Skip to content

Instantly share code, notes, and snippets.

Garrett Dawson killtheliterate

Block or report user

Report or block killtheliterate

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View withEffect
type Omit<T, K> = Pick<T, Exclude<keyof T, K>>
type Subtract<T, K> = Omit<T, keyof K>
export type EffOptions = {
ErrorComponent?: React.ComponentType<any>
LoadingComponent?: React.ComponentType<any>
log?: (...args: any[]) => void
}
export type EffProps = {
@killtheliterate
killtheliterate / hoc.tsx
Last active Jun 13, 2018
Spread operator loses type information
View hoc.tsx
import * as React from 'react'
import { shallow } from 'enzyme'
// ---------------------------------------------------------------------------
export type HocProps = {
a: boolean
b: boolean
}
@killtheliterate
killtheliterate / effect.tsx
Last active Jun 13, 2018
A HOC for fetching data
View effect.tsx
// @see: https://gist.github.com/bvaughn/982ab689a41097237f6e9860db7ca8d6
import * as React from 'react'
// ---------------------------------------------------------------------------
export type EffOptions = {
StateComponent?: React.ComponentType<any>
}
View What's going on in JS Land?
Cool things folks heard about:
* Chrome 65:
* Highlights video - https://youtu.be/D1pV7ermy6w
* Emberconf
* React 16.3 - React.Suspense, React.Context
* Everybody hates Redux?
* D3 5
View package.json
{
"name": "chassis",
"version": "0.0.1",
"description": "A component library for Blinker",
"private": true,
"main": "chassis.bundle.js",
"scripts": {
"build": "./bin/build",
"clean": "./bin/clean",
"lint": "./node_modules/.bin/eslint src/",
View webpack.config.js
// ---------------------------------------------------------------------------
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const autoprefixer = require('autoprefixer');
const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
// ---------------------------------------------------------------------------
View write
const Router = require('koa-router')
const body = require('koa-body')
const fs = require('fs')
const router = new Router()
const BASE_URL = '/upload'
router.put(BASE_URL, body({ multipart: true }), async (ctx) => {
const files = ctx.request.body.files
const keys = Object.keys(files)
View window.fetch
window.fetch('/endpoing', {
method: 'POST',
body: new window.FormData(file)
})
// add something to check for 200 etc.
.then(res => res.json())
.then(console.log)
.catch(console.error)
})
View redux-form.js
<form onSubmit={ }>
<div className="form-group">
<label className="form-check" htmlFor="send-chat">
<Field
name="sendChat"
id="send-chat"
component="input"
type="checkbox"
onChange={ this.props.handleSubmit(this.props.initialValues, 'sendChat') }
/>
You can’t perform that action at this time.