Skip to content

Instantly share code, notes, and snippets.

View playlist.json
{
"kind": "stream_item",
"type": "playlist_repost",
"created_at": "2014/06/22 22:36:02 +0000",
"track": null,
"playlist": {
"kind": "playlist",
"id": 40585650,
"created_at": "2014/06/20 16:22:58 +0000",
"user_id": 315279,
View ActionTypes.js
'use statics';
export default {
FETCH_ME: 'FETCH_ME',
FETCH_LIKES: 'FETCH_LIKES',
FETCH_TRACKS: 'FETCH_TRACKS',
FETCH_USER: 'FETCH USER'
};
View example.jsx
// prefer this
const ExamplePage = () => {
return (
<>
<div>
<h1>Card 1!</h1>
<h2>A simple card!</h2>
</div>
<div>
@hedgerh
hedgerh / PropValidation.tsx
Created Apr 29, 2019
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.
View PropValidation.tsx
import React from 'react';
interface IImage {
alt: string;
src: string;
}
interface IGalleryProps {
images: IImage[]
}
View duck.js
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),
View a-typesafe-actions-duck.ts
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 Mar 23, 2019 — forked from phd20/index.tsx
Working version of container that returns array of objects
View index.tsx
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 Jan 22, 2019
Example http module with Axios
View http.js
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))
View HttpClient.js
import store from './store'
export default class HttpClient {
getUser() {
const token = store.getState()
// fetch and pass along your token
}
}