Skip to content

Instantly share code, notes, and snippets.

View ernestofreyreg's full-sized avatar
🚢
Just ship it

Ernesto Freyre ernestofreyreg

🚢
Just ship it
View GitHub Profile
@ernestofreyreg
ernestofreyreg / index.js
Created May 24, 2017 00:00
First next app
const Index = () => (
<div>
<p>Hello Server Side Rendered React App from Google Cloud Front</p>
</div>
)
export default Index
@ernestofreyreg
ernestofreyreg / index.js
Last active May 24, 2017 00:52
Serving next app on google cloud functions.
const next = require('next')
const app = next({ dev: false })
const handle = app.getRequestHandler()
module.exports.handler = (req, res) => {
return app.prepare()
.then(() => handle(req, res))
.catch(ex => {
console.error(ex.stack)
@ernestofreyreg
ernestofreyreg / index.js
Created May 24, 2017 01:05
SSR React on Google Cloud Functions
const next = require('next')
const app = next({ dev: false })
const handle = app.getRequestHandler()
const slasher = handler => (req, res) => {
if (req.url === '') {
req.url = '/'
}
class Counter extends React.Component {
state = {
count: 0
}
increase = () => {
this.setState({count: this.state.count + 1})
}
render () {
const increaseFn = state => ({count: state.count + 1})
class Counter extends React.Component {
state = {
count: 0
}
increase = () => {
this.setState(increaseFn)
}
class FileUploader extends Component {
static propTypes = {
uploadingFile: PropTypes.object,
uploadProgress: PropTypes.object,
cancelled: PropTypes.bool,
completed: PropTypes.bool,
uploadFile: PropTypes.func.isRequired,
cancelUpload: PropTypes.func.isRequired,
retryUpload: PropTypes.func.isRequired
}
import axios from 'axios'
export const INIT_UPLOADER = 'INIT_UPLOADER'
export const START_UPLOADING = 'START_UPLOADING'
export const UPLOAD_PROGRESS = 'UPLOAD_PROGRESS'
export const UPLOAD_SUCCESS = 'UPLOAD_SUCCESS'
export const CLEAR_FILE_SELECTION = 'CLEAR_FILE_SELECTION'
export const CANCELLED_UPLOAD = 'CANCELLED_UPLOAD'
export const initialState = {
import React, {Component} from 'react'
const connect = (component, actionCreator, initialState) => {
const attach = instance => ({
set: fn => new Promise(resolve => instance.setState(fn, resolve)),
get: () => instance.state
})
return class Connected extends Component {
constructor(props, context) {
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import FileDrop from './FileDrop'
import FileUploadProgress from './FileUploadProgress'
import {createActions, initialState} from './uploader'
import connect from '../connect'
class FileUploader extends Component {
static propTypes = {
uploadingFile: PropTypes.object,
import expect from 'must'
import sinon from 'sinon'
import mustSinon from 'must-sinon'
import {
uploadFileReducer,
createActions,
initialState,
INIT_UPLOADER,
START_UPLOADING
} from '../../../components/FileUploader/uploader'