Skip to content

Instantly share code, notes, and snippets.

View viniciusdacal's full-sized avatar

Vinicius Dacal viniciusdacal

View GitHub Profile
import React from 'react';
class Welcome extends React.Component {
render() {
return <div> Welcome {this.props.name} </div>
}
}
export default Welcome;
const addTodo = (description, date) => ({
type: 'ADD_TODO',
payload: {
description: description,
date: date,
},
});
const todoAction = addTodo('Write post about ARC', '2017-07-08')
/*
* {
* type: 'ADD_TODO',
* description: 'Write post about ARC',
* date: '2017-07-08'
* }
*/
const middleware = store => next => action => {
next(action);
};
{
type: ['ADD_TODO_REQUEST', 'ADD_TODO_RESPONSE'],
payload: {
description: 'Write post about ARC',
date: '2017-07-08',
},
meta: {
url: 'path/to/add-to-do',
method: 'post'
},
import axios from 'axios';
export function createAsyncMiddleware() {
return store => next => (action) => {
const { type, meta } = action;
if (!Array.isArray(type)) {
return next(action);
}
const TODO_ADD_REQUEST = 'TODO_ADD_REQUEST';
const TODO_ADD_RESPONSE = 'TODO_ADD_RESPONSE';
const TODO_LIST_REQUEST = 'TODO_LIST_REQUEST';
const TODO_LIST_RESPONSE = 'TODO_LIST_RESPONSE';
const TODO_READ_REQUEST = 'TODO_READ_REQUEST';
const TODO_READ_RESPONSE = 'TODO_READ_RESPONSE';
const TODO_UPDATE_REQUEST = 'TODO_UPDATE_REQUEST';
const TODO_ADD_REQUEST = 'TODO_ADD_REQUEST';
const TODO_ADD_RESPONSE = 'TODO_ADD_RESPONSE';
const add = (description, date) => ({
type: [TODO_ADD_REQUEST, TODO_ADD_RESPONSE],
payload: {
description,
date,
},
meta: {
import { createApiActions } from 'redux-arc';
const { creators, types } = createApiActions('todo', {
add: { url: 'path/to/to-do', method: 'post' }
});
const payload = {
description: 'Create post about ARC',
date: '2017-08-01',
};
dispatch(creators.add({ payload: payload }))