Skip to content

Instantly share code, notes, and snippets.

View ryanjyost's full-sized avatar

Ryan Yost ryanjyost

View GitHub Profile
@ryanjyost
ryanjyost / App.js
Created April 17, 2018 02:25
updateInput() with localStorage
updateInput(key, value) {
// update react state
this.setState({ [key]: value });
// update localStorage
localStorage.setItem(key, value);
}
@ryanjyost
ryanjyost / App.js
Last active March 31, 2019 10:08
App.js for localStorage tutorial - Initial Setup
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
class App extends Component {
constructor(props) {
super(props);
this.state = {
newItem: "",
list: []
@ryanjyost
ryanjyost / App.js
Created January 20, 2018 19:28
Button snippet from Dog Saga - Redux-Saga Beginner Tutorial.
{fetching ?
(<button disabled>Fetching...</button>) :
(<button onClick={onRequestDog}>Request a Dog</button>)
}
@ryanjyost
ryanjyost / App.js
Last active January 20, 2018 19:25
Error snippet from Dog Saga - Redux-Saga Beginner Tutorial.
{error && <p style={{ color: "red" }}>Uh oh - something went wrong!</p>}
@ryanjyost
ryanjyost / App.js
Created January 20, 2018 19:22
Text snippet from Dog Saga - Redux-Saga Beginner Tutorial.
{dog ?
(<p className="App-intro">Keep clicking for new dogs</p>) :
(<p className="App-intro">Replace the React icon with a dog!</p>)
}
@ryanjyost
ryanjyost / App.js
Created January 20, 2018 19:17
Image source snippet from Dog Saga - Redux-Saga Beginner Tutorial.
<header className="App-header">
<img src={dog || logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to Dog Saga</h1>
</header>
@ryanjyost
ryanjyost / App.js
Created January 20, 2018 18:46
The App.js file for Dog Saga - Redux-Saga Beginner Tutorial
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
import { connect } from "react-redux";
class App extends Component {
render() {
const { fetching, dog, onRequestDog, error } = this.props;
@ryanjyost
ryanjyost / index.js
Created January 19, 2018 04:53
The index.js for Dog Saga - Redux-Saga Beginner Tutorial
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import registerServiceWorker from "./registerServiceWorker";
import { createStore, applyMiddleware, compose } from "redux";
import createSagaMiddleware from "redux-saga";
import { Provider } from "react-redux";
@ryanjyost
ryanjyost / sagas.js
Last active January 21, 2018 17:36
The sagas.js file for Dog Saga - Redux-Saga Beginner Tutorial
import { takeLatest, call, put } from "redux-saga/effects";
import axios from "axios";
// watcher saga: watches for actions dispatched to the store, starts worker saga
export function* watcherSaga() {
yield takeLatest("API_CALL_REQUEST", workerSaga);
}
// function that makes the api request and returns a Promise for response
function fetchDog() {
@ryanjyost
ryanjyost / redux.js
Last active June 30, 2018 17:33
The redux.js file for Dog Saga - a redux-saga beginner tutorial
// action types
const API_CALL_REQUEST = "API_CALL_REQUEST";
const API_CALL_SUCCESS = "API_CALL_SUCCESS";
const API_CALL_FAILURE = "API_CALL_FAILURE";
// reducer with initial state
const initialState = {
fetching: false,
dog: null,
error: null