Skip to content

Instantly share code, notes, and snippets.

View drenther's full-sized avatar
🏠
Working from home

Soumyajit Pathak drenther

🏠
Working from home
View GitHub Profile
@drenther
drenther / db.json
Last active August 28, 2017 21:01
demo db
{
"products" : [
{
"id" : 1,
"name" : "Crib One",
"desc" : "Cribs of the first kind. It's like a heavenly cloud to make your babies sleep sound.",
"price" : 45.99,
"thumbnail": "./assets/crib1.jpg",
"images": ["./assets/crib2.jpg", "./assets/crib3.jpg", "./assets/crib4.jpg", "./assets/crib5.jpg"]
},
@drenther
drenther / webpack.config.js
Created June 17, 2018 14:44
webpack config for react-basic-ssr
const path = require('path');
const webpack = require('webpack');
const nodeExternals = require('webpack-node-externals');
const common = {
rules: [{ test: /\.(js)$/, use: 'babel-loader' }],
};
const clientConfig = {
entry: './src/client/index.js',
@drenther
drenther / .babelrc
Created June 17, 2018 16:44
.babelrc for react-ssr
{
"presets": [
[
"env",
{
"targets": {
"browsers": ["last 2 versions"],
"node": "8.11.3"
}
}
@drenther
drenther / App.js
Created June 17, 2018 16:59
App.js for react-ssr
import React, { Component } from 'react';
import { Switch, Navlink, Route } from 'react-router-dom';
import Navbar from './components/Navbar';
import NoMatch from './components/NoMatch';
import UniversalDataloader from './components/UniversalDataloader';
import routes from './routes';
class App extends Component {
@drenther
drenther / Home.js
Last active June 17, 2018 20:19
Presentational Components of react-ssr
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import Loading from './Loading';
const Home = ({ loading, data }) => (
<div className="home container">
<Helmet>
<title>FavMovies - Home</title>
@drenther
drenther / UniversalDataloader.js
Last active June 17, 2018 18:58
UniversalDataloader.js for react-ssr
import { Component } from 'react';
class UniversalDataloader extends Component {
constructor(props) {
super(props);
let data;
if (__isBrowser__ && window.__SERIALIZED_DATA__) {
data = window.__SERIALIZED_DATA__;
delete window.__SERIALIZED_DATA__;
@drenther
drenther / apiCalls.js
Created June 17, 2018 18:49
All the API requests for react-ssr
import axios from 'axios';
const baseUri = 'http://localhost:3002';
export const fetchAllMovies = () =>
axios
.get(`${baseUri}/movies`)
.then(({ data }) => data)
.catch(e => {
console.log(e);
@drenther
drenther / routes.js
Created June 17, 2018 19:27
routes for react-ssr
import Home from './components/Home';
import Movie from './components/Movie';
import { fetchAllMovies, fetchMovieById } from './apiCalls';
const routes = [
{
path: '/',
exact: true,
C: Home,
@drenther
drenther / client.index.js
Created June 17, 2018 19:42
index.js for client of react-ssr
import React from 'react';
import { hydrate } from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import App from '../shared/App';
hydrate(
<BrowserRouter>
<App />
</BrowserRouter>,
@drenther
drenther / server.index.js
Last active July 9, 2019 18:21
server/index.js for react-ssr
import express from 'express';
import cors from 'cors';
import React from 'react';
import { Helmet } from 'react-helmet';
import { renderToString } from 'react-dom/server';
import { matchPath, StaticRouter } from 'react-router-dom';
import App from '../shared/App';
import routes from '../shared/routes';