Skip to content

Instantly share code, notes, and snippets.

Andrey Okonetchnikov okonet

Block or report user

Report or block okonet

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
@okonet
okonet / lightning_talk_proposal.md
Last active Apr 10, 2018
Make linting great again! -- ReactiveConf 2017 ⚡️talk proposal
View lightning_talk_proposal.md

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.

@okonet
okonet / jest-webpack-preprocessor.js
Created Mar 9, 2017
Test webpack-shimmed and aliased modules with Jest
View jest-webpack-preprocessor.js
/* 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 / ScrollPane.js
Created Jan 13, 2017
React at 60fps Example 3
View ScrollPane.js
export default class ScrollPane extends Component {
static contextTypes = {
registerPane: PropTypes.func.isRequired,
unregisterPane: PropTypes.func.isRequired
};
componentDidMount() {
this.context.registerPane(this.el)
}
@okonet
okonet / ScrollPane.js
Created Jan 13, 2017
React at 60fps Example 2
View ScrollPane.js
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
Last active Jan 16, 2017
React at 60fps Example 1
View ScrollPane.js
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 / package.json
Created Nov 20, 2016
Automatic yarn updates as a post-checkout hook
View package.json
{
"devDependencies": {
"ghooks": "^1.3.2"
},
"config": {
"ghooks": {
"post-checkout": "./script/yarn-update.hook.sh $2 $3"
}
}
}
@okonet
okonet / .gitconfig
Created Jul 31, 2016
My Git Config
View .gitconfig
[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
You can’t perform that action at this time.