Skip to content

Instantly share code, notes, and snippets.

View okonet's full-sized avatar

Andrey Okonetchnikov okonet

View GitHub Profile
@okonet
okonet / esnextbin.md
Created July 6, 2016 07:53
esnextbin sketch
@okonet
okonet / esnextbin.md
Created July 6, 2016 07:55
esnextbin sketch
@okonet
okonet / .gitconfig
Created July 31, 2016 07:56
My Git Config
[core]
excludesfile = ~/.gitignore
autocrlf = false
pager = diff-so-fancy | less --tabs=4 -RFX
[alias]
st = status -sb
ci = commit
co = checkout
br = branch
df = diff --word-diff
@okonet
okonet / esnextbin.md
Last active August 4, 2016 13:13
esnextbin sketch
@okonet
okonet / package.json
Created November 20, 2016 18:48
Automatic yarn updates as a post-checkout hook
{
"devDependencies": {
"ghooks": "^1.3.2"
},
"config": {
"ghooks": {
"post-checkout": "./script/yarn-update.hook.sh $2 $3"
}
}
}
@okonet
okonet / ScrollPane.js
Last active January 16, 2017 10:52
React at 60fps Example 1
class ScrollPane extends React.Component {
componentDidUpdate() {
// Each time we get new props we set the
// new scrollTop position on the DOM element
this.el.scrollTop = this.props.scrollTop
}
render() {
<div ref={(el) => {this.el = el}}>
}
}
@okonet
okonet / ScrollPane.js
Created January 13, 2017 18:17
React at 60fps Example 2
handleScroll = (evt) => {
// Calculate new scrollTop positions
// for left and right panes based on
// DOM nodes and evt.target.scrollTop
this.leftPaneScrollTop = …
this.rightPaneScrollTop = …
}
@okonet
okonet / ScrollPane.js
Created January 13, 2017 18:19
React at 60fps Example 3
export default class ScrollPane extends Component {
static contextTypes = {
registerPane: PropTypes.func.isRequired,
unregisterPane: PropTypes.func.isRequired
};
componentDidMount() {
this.context.registerPane(this.el)
}
@okonet
okonet / jest-webpack-preprocessor.js
Created March 9, 2017 09:29
Test webpack-shimmed and aliased modules with Jest
/* eslint-env node */
const path = require('path');
const webpack = require('webpack');
const MemoryFileSystem = require('memory-fs');
const EnhancedResolve = require('enhanced-resolve');
const transform = require('transform-jest-deps');
const babel = require('babel-jest');
const createConfig = require('../build/utils/createWebpackConfig');
@okonet
okonet / lightning_talk_proposal.md
Last active April 10, 2018 10:09
Make linting great again! -- ReactiveConf 2017 ⚡️talk proposal

Please 🌟 this gist to vote for this proposal!

Make linting great again!

tabs vs spaces

No other topic in software development probably has so much controversy as linting.

With a wrong workflow linting can be really a pain and will slow you and your team down. With a proper setup, though, it can save you hours of manual work reformatting the code and reducing the code-review overhead.