Skip to content

Instantly share code, notes, and snippets.

View abhiaiyer91's full-sized avatar

Abhi Aiyer abhiaiyer91

View GitHub Profile
@abhiaiyer91
abhiaiyer91 / TodoList.jsx
Last active April 5, 2016 18:40
TodoList
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';
import { connect } from 'react-redux';
import React from 'react';
import reactMixin from 'react-mixin';
import Todos from '../../collection';
import changePage from '../../../imports/client/actions/changePage';
import toggleTodo from '../../../imports/client/actions/toggleTodo';
import Todo from '../../../imports/client/components/Todo';
import TodoPagination from '../../../imports/client/components/TodoPagination';
@abhiaiyer91
abhiaiyer91 / Footer.jsx
Last active April 5, 2016 04:45
Footer
@abhiaiyer91
abhiaiyer91 / FilterLink.jsx
Last active April 5, 2016 04:43
Filter Link
@abhiaiyer91
abhiaiyer91 / Link.js
Last active April 5, 2016 04:42
Link
@abhiaiyer91
abhiaiyer91 / todoApp.js
Last active August 9, 2016 07:51
Todo App Example Reducer
export default function todoApp(state = initialState, action) {
switch (action.type) {
case "SET_VISIBILITY_FILTER":
// RETURNING A NEW STATE WHAT WHAT!!!
return Object.assign({}, state, {
visibilityFilter: action.filter
})
default:
return state
}
@abhiaiyer91
abhiaiyer91 / packages.json
Created January 11, 2016 06:33
Package.json
{
"react-mixin": "3.0.3", // So we can use Mixins with ES6 Classes
"redux": "3.0.5", // The library this blog post is about
"react-redux": "4.0.6" // redux bindings for react
"redux-thunk": "1.0.3", // How we can dispatch actions as funcs
"redux-logger": "2.3.1", // Logging state changes
"classnames": "2.2.1", // DOPE conditional css tool
"externalify": "0.1.0" // specify a custom name for require
"react-paginate": "0.5.0"
}
@abhiaiyer91
abhiaiyer91 / app.browserify.js
Created January 11, 2016 06:34
Browserify js
Redux = require('redux');
thunkMiddleware = require('redux-thunk');
createLogger = require('redux-logger');
classNames = require('classnames');
reactMixin = require('react-mixin');
ReactRedux = require('react-redux');
ReactPaginate = require('react-paginate');
{
"transforms": {
"externalify": {
"global": true,
"external": {
"react": "Package.react-runtime.React.require"
}
}
}
}
// in imports/collections.js
const Todos = new Mongo.Collection('todos');
export default Todos;
// in server/publications.js
import Todos from '../imports/collection';
Meteor.publish('getTodos', function (filter, pageSkip = 0) {
switch (filter) {
case 'SHOW_ALL':
return Todos.find({}, {skip: pageSkip, limit 10});
case 'SHOW_COMPLETED':
return Todos.find({completed: true}, {skip: pageSkip, limit: 10});
case 'SHOW_ACTIVE':