Skip to content

Commit

Permalink
Merge pull request #806 from lidawang/lw-forward-test
Browse files Browse the repository at this point in the history
Test page for page forwarding
  • Loading branch information
drewpc authored Jan 15, 2017
2 parents bd1bb56 + db40e27 commit a5d6a4e
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
4 changes: 4 additions & 0 deletions packages/react-server-test-pages/entrypoints.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ module.exports = {
entry: "/navigation/playground",
description: "Navigation playground",
},
Forwarding: {
entry: "/navigation/forward",
description: "Test how page forwarding works with passing data down",
},
StylePromises: {
entry: "/styles/promises",
description: "Stylesheets returned from promises",
Expand Down
38 changes: 38 additions & 0 deletions packages/react-server-test-pages/pages/navigation/forward.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import {ReactServerAgent} from "react-server";

export default class ForwardPage {
handleRoute() {
const request = this.getRequest();
let params = request.getQuery();
if (params) {
params = params.value;
} else {
params = 0;
}

//fetch some data
this.data = ReactServerAgent.get('/data/delay?ms=1000&val='+params);

return this.data.then((res) => {
//then depending on said data, forward to one of two pages, and pass along the data we pre-fetched
const pageName = (res.body % 2 === 0) ? "./forwardEven" : "./forwardOdd";
// TODO: change this to use isBrowser when that check is available.
if (typeof window !== 'undefined') {
return require.ensure([pageName], () => {
return {
page: require(pageName).default,
};
});
} else {
return {
page: require(pageName).default,
};
}
});
}

getElements() {
return <div>boop</div>;
}
}

23 changes: 23 additions & 0 deletions packages/react-server-test-pages/pages/navigation/forwardEven.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import {ReactServerAgent, RootElement} from "react-server";

const Even = ({body}) => <div className="even">Hey look I'm even because I am {body}</div>;

export default class ForwardEvenPage {
handleRoute() {
const request = this.getRequest();
let params = request.getQuery();
if (params) params = params.value;
else params = 0;

//fetch some data (should be from cache)
this.data = ReactServerAgent.get('/data/delay?ms=1000&val='+params);

return {code: 200};
}

getElements() {
return [
<RootElement when={this.data}><Even /></RootElement>,
];
}
}
23 changes: 23 additions & 0 deletions packages/react-server-test-pages/pages/navigation/forwardOdd.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import {ReactServerAgent, RootElement} from "react-server";

const Odd = ({body}) => <div className="odd">Hey look I'm odd because I am {body}</div>;

export default class ForwardOddPage {
handleRoute() {
const request = this.getRequest();
let params = request.getQuery();
if (params) params = params.value;
else params = 0;

//fetch some data (should be from cache)
this.data = ReactServerAgent.get('/data/delay?ms=1000&val='+params);

return {code: 200};
}

getElements() {
return [
<RootElement when={this.data}><Odd /></RootElement>,
];
}
}

0 comments on commit a5d6a4e

Please sign in to comment.