Skip to content

Instantly share code, notes, and snippets.

View dglowinski's full-sized avatar

Dariusz Glowinski dglowinski

View GitHub Profile
@dglowinski
dglowinski / git pretty logs
Created April 3, 2017 09:54
git pretty logs
[alias]
lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
@dglowinski
dglowinski / thunk_inputs.js
Created July 13, 2017 12:31
React - Thunk inputs
inputOnChange = propName => ev => this.setState({ [propName] : ev.target.value })
render () {
return (
<form onSubmit={this.handleLogin} >
<input
type='input'
value={this.state.user}
placeholder='username'
className='header-login-input'
@dglowinski
dglowinski / hide_component.js
Created July 14, 2017 08:42
React - hide component
function WarningBanner(props) {
if (!props.warn) {
return null;
}
return (
<div className="warning">
Warning!
</div>
);
@dglowinski
dglowinski / multi_children.js
Created July 14, 2017 09:11
React - multiple children prop
function SplitPane(props) {
return (
<div className="SplitPane">
<div className="SplitPane-left">
{props.left}
</div>
<div className="SplitPane-right">
{props.right}
</div>
</div>
@dglowinski
dglowinski / egghead.js
Created July 14, 2017 09:13
React - egghead intro
import React from 'react';
import ReactDOM from 'react-dom';
import PropTypes from 'prop-types';
import './App.css'
//const App = () => <h1>Hello stateless</h1>
class App extends React.Component {
constructor() {
super();
@dglowinski
dglowinski / router.js
Created July 14, 2017 09:21
React - router
import React from 'react';
import { BrowserRouter as Router, Link, Route } from 'react-router-dom';
import Footer from './Footer';
import Header from './Header';
import Todos from './Todos';
import Articles from './Articles';
export default class Layout extends React.Component {
constructor() {
super();
@dglowinski
dglowinski / children_callback.js
Created July 14, 2017 11:49
React - children prop as callback
// Calls the children callback numTimes to produce a repeated component
function Repeat(props) {
let items = [];
for (let i = 0; i < props.numTimes; i++) {
items.push(props.children(i));
}
return <div>{items}</div>;
}
function ListOfTenThings() {
@dglowinski
dglowinski / proptypes.js
Last active July 14, 2017 12:23
React - PropTypes
import PropTypes from 'prop-types';
MyComponent.propTypes = {
// You can declare that a prop is a specific JS primitive. By default, these
// are all optional.
optionalArray: PropTypes.array,
optionalBool: PropTypes.bool,
optionalFunc: PropTypes.func,
optionalNumber: PropTypes.number,
optionalObject: PropTypes.object,
@dglowinski
dglowinski / ref_child_parent.js
Created July 14, 2017 12:23
React - ref from child to parent
function CustomTextInput(props) {
return (
<div>
<input ref={props.inputRef} />
</div>
);
}
class Parent extends React.Component {
render() {
@dglowinski
dglowinski / media_query.js
Created July 14, 2017 13:02
React - media query component
const PropTypes = require('prop-types');
class MediaQuery extends React.Component {
constructor(props) {
super(props);
this.state = {type:'desktop'};
}
getChildContext() {
return {type: this.state.type};