Skip to content

Instantly share code, notes, and snippets.

View namelos's full-sized avatar
💤
zzz

Yifan Wang namelos

💤
zzz
View GitHub Profile
@namelos
namelos / minCounter.js
Last active February 19, 2016 10:58
Minimalist redux example
import React, { Component } from 'react'
import { render } from 'react-dom'
import { createStore, bindActionCreators } from 'redux'
import { connect, Provider } from 'react-redux'
const increment = () => ({ type: 'increment' })
const counter = (state = 0, action) => {
switch (action.type) {
import { MongoClient } from 'mongodb';
import assert from 'assert';
const url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, (err, db) => {
assert.equal(null, err);
console.log('connected');
db.close();
});
@namelos
namelos / curried-event-handler.jsx
Last active August 8, 2017 07:04
reusable react curried event handler
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Map, List } from 'immutable';
class App extends Component {
constructor () {
super();
this.state = { data: Map({
name: 'init',
pass: 'init'
@namelos
namelos / redux-async-action-client.js
Last active October 10, 2015 04:05
minimalist async action example for redux
import request from 'superagent';
import thunk from 'redux-thunk';
import createLogger from 'redux-logger';
import { createStore, applyMiddleware } from 'redux';
const req = () => ({ type: 'REQ' });
const rec = data => ({ type: 'REC', data });
const fetch = () => dispatch => {
dispatch(req());
return request.get('http://localhost:3000/api')
@namelos
namelos / routes.js
Last active October 15, 2015 05:28
redux routes
import React, { Component } from 'react'
import { render } from 'react-dom'
import { createStore, combineReducers, applyMiddleware, compose, bindActionCreators } from 'redux'
import { Provider, connect } from 'react-redux'
import { Router, Route, IndexRoute, Link } from 'react-router'
import { reduxReactRouter, routerStateReducer, ReduxRouter } from 'redux-router'
import { createHistory } from 'history'
import { devTools, persistState } from 'redux-devtools'
import { DevTools, DebugPanel, LogMonitor } from 'redux-devtools/lib/react'
import createLogger from 'redux-logger'
@namelos
namelos / linked list
Created October 24, 2015 21:01
some linked list functions
const n3 = { val: 3, nxt: null }
const n2 = { val: 2, nxt: n3 }
const n1 = { val: 1, nxt: n2 }
const fst = n => n.val
const rst = n => n.nxt
const cons = (val, n) => { val, nxt: n }
fst(n1) // 1
fst(rst(n1)) // 2
@namelos
namelos / app-n-routes.js
Last active October 30, 2015 10:14
conditional react router animation implementation with quick hack snippets
export default class App extends Component {
render = () => {
const { pathname } = this.props.location
const root = pathname === '/'
return (
<div>
<li><Link to="/one">One</Link></li>
<li><Link to="/two">Two</Link></li>
<ReactCSSTransitionGroup component="div" transitionName={ root ? forward : reverse } >
{ React.cloneElement(this.props.children || <div />, { key: pathname }) }
{ createClass } = React
{ render } = ReactDOM
Tasks = new Mongo.Collection('tasks')
if Meteor.isClient
Accounts.ui.config(passwordSignupFields: "USERNAME_ONLY")
Meteor.subscribe('tasks')
export default store => next => action => {
if (!action.request)
return next(action)
const { types, request, ...rest } = action
const [ REQUEST, SUCCESS, FAILURE ] = types
next({ ...rest, type: REQUEST })
fetch(request)
import React, { Component } from 'react';
import { render } from 'react-dom';
import { createStore, applyMiddleware, bindActionCreators, combineReducers } from 'redux';
import thunk from 'redux-thunk';
import { Provider, connect } from 'react-redux';
import { Map } from 'immutable'
import createLogger from 'redux-logger'
const logger = createLogger()
// Actions