Skip to content

Instantly share code, notes, and snippets.

// prefer this
const ExamplePage = () => {
return (
<>
<div>
<h1>Card 1!</h1>
<h2>A simple card!</h2>
</div>
<div>
@hedgerh
hedgerh / PropValidation.tsx
Created April 29, 2019 23:44
Benefits of using Typescript with React #1: You get compile time prop validation and auto completion. This is especially helpful when working with a 3rd party UI library that you aren't 100% familiar with yet.
import React from 'react';
interface IImage {
alt: string;
src: string;
}
interface IGalleryProps {
images: IImage[]
}
import { call, put, takeLatest } from 'redux-saga/effects'
import client from '../httpClient'
const createAction = (type) => (payload) => ({
type,
payload,
})
const http = {
login: (credentials) => client.post('/login', credentials),
const foo = 'hello'
import { call, put, takeLatest } from 'redux-saga/effects'
import { createStandardAction, ActionType, getType } from 'typesafe-actions'
import client from '../httpClient'
interface ILogin {
email: string;
password: string;
}
interface IUser {
@hedgerh
hedgerh / index.tsx
Last active March 23, 2019 00:38 — forked from phd20/index.tsx
Working version of container that returns array of objects
import { connect } from "react-redux";
import Dashboard from "./dashboard";
import { ApplicationState } from "../../store";
const mapStateToProps = (state: ApplicationState) => {
const sessions = sessionsArraySelector(state)
console.log(sessions)
return {
user: state.oidc.user,
sessions: Object.values(sessions),
@hedgerh
hedgerh / http.js
Last active January 22, 2019 17:51
Example http module with Axios
import axios from 'axios'
export const http = axios.create({
baseUrl: 'https://localhost:3000',
headers: {
//...
},
})
http.interceptors.response.use(response => response.data, err => throw new Error(err))
import store from './store'
export default class HttpClient {
getUser() {
const token = store.getState()
// fetch and pass along your token
}
}
import httpClient from './httpClient'
const login = (email, password) => (dispatch) => {
return httpClient.login(email, password)
.then(response => {
httpClient.token = response.token
dispatch(loginSuccess(response))
})
}
@hedgerh
hedgerh / inplay.jsx
Last active September 10, 2018 13:10
import React, { Component } from "react";
import axios from "axios";
import moment from "moment";
export default class Feutred extends Component {
state = {
sports: [],
events: [],
isLoading: true,
errors: null