Skip to content

Instantly share code, notes, and snippets.

View ryanjyost's full-sized avatar

Ryan Yost ryanjyost

View GitHub Profile
@ryanjyost
ryanjyost / Final: src_index.js
Last active January 22, 2017 23:45
rainy-day-fund/src/index.js
//src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import router from './router';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/css/bootstrap-theme.css';
import './index.css'
@ryanjyost
ryanjyost / localStorage.js
Created January 22, 2017 22:46
rainy-day-fund/src/localStorage.js
//src/localStorage.js
export const loadState = () => {
try{
const serializedState = localStorage.getItem('state');
if(serializedState === null){
return undefined;
}
return JSON.parse(serializedState)
@ryanjyost
ryanjyost / Final: router.js
Last active January 22, 2017 21:54
rainy-day-fund/src/router.js
//src/router.js
import React from 'react'
import { Router, Route, hashHistory, IndexRoute } from 'react-router'
import App from './components/App'
import Landing from './components/Landing'
import WhatIsARainyDayFund from './components/WhatIsARainyDayFund'
import AssumptionsContainer from './components/AssumptionsContainer'
import ExpensesContainer from './components/ExpensesContainer'
@ryanjyost
ryanjyost / Final: SavingsPlan.js
Last active January 25, 2017 03:34
rainy-day-fund/src/components/SavingsPlan.js
//src/components/SavingsPlan.js
import React from 'react';
import { FormControl, InputGroup } from 'react-bootstrap';
import {formatDollarValues, calcTotalExpenses} from '../helpers'
const SavingsPlan = ({assumptions, expenses, monthlySavings, handleUpdateMonthlySavings}) => {
if(assumptions.income === 0 || calcTotalExpenses(expenses) === 0){
@ryanjyost
ryanjyost / Final: SavingsPlanContainer.js
Created January 22, 2017 21:45
rainy-day-fund/src/components/SavingsPlanContainer.js
//src/components/SavingsPlanContainer
import SavingsPlan from './SavingsPlan'
import { connect } from 'react-redux';
import {updateMonthlySavings} from '../actions'
const mapStateToProps = (state) => {
return {
assumptions:state.assumptions,
expenses: state.expenses,
@ryanjyost
ryanjyost / Final: TotalExpenses.js
Last active January 25, 2017 03:32
rainy-day-fund/src/components/TotalExpenses.js
//src/components/TotalExpenses.js
import React from 'react';
import {formatDollarValues, calcTotalExpenses} from '../helpers'
const TotalExpenses = ({expenses}) => {
return (
<div id="TotalExpenses">
<h3>Total Monthly Expenses</h3>
@ryanjyost
ryanjyost / Final: Expense.js
Created January 22, 2017 21:31
rainy-day-fund/src/components/Expense.js
//src/components/Expense.js
import React from 'react';
import {FormControl, InputGroup } from 'react-bootstrap';
import {formatDollarValues} from '../helpers'
const Expense = ({key, name, amount, id, updateExpenseName, updateExpenseAmount, removeExpense}) => {
return (
<li className="expense-item">
@ryanjyost
ryanjyost / Final: Expenses.js
Last active January 24, 2017 05:10
rainy-day-fund/src/components/Expenses.js
//src/components/Expenses.js
import React, { Component } from 'react';
import { Link } from 'react-router'
import { Button } from 'react-bootstrap';
import Expense from './Expense'
import TotalExpenses from './TotalExpenses'
const Expenses = ({expenses, handleAddExpense, handleRemoveExpense, handleUpdateExpenseName, handleUpdateExpenseAmount}) => {
@ryanjyost
ryanjyost / Final: ExpensesContainer.js
Last active January 22, 2017 21:27
rainy-day-fund/src/components/ExpensesContainer.js
//src/components/ExpensesContainer
import Expenses from './Expenses'
import { connect } from 'react-redux';
import {addExpense, removeExpense, updateExpenseName, updateExpenseAmount} from '../actions'
const mapStateToProps = (state) => {
return {
expenses: state.expenses,
}
@ryanjyost
ryanjyost / Final: Assumptions.js
Last active January 24, 2017 05:09
rainy-day-fund/src/components/Assumptions.js
//src/components/Assumptions.js
import React from 'react';
import {Link} from 'react-router'
import { FormGroup, Row, ControlLabel, FormControl, Button, InputGroup } from 'react-bootstrap';
import {formatDollarValues} from '../helpers'
const Assumptions = ({assumptions, handleUpdateIncomeSources, handleUpdateIncome, handleUpdateSavings}) => {
return (