-
Notifications
You must be signed in to change notification settings - Fork 184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test page for page forwarding #806
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
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 | ||
if (res.body % 2 === 0) { | ||
if (typeof window !== 'undefined') { //would be nice if this is `process.env.isServer` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you change this comment to be a |
||
require.ensure(["./forwardEven"], () => { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I can't quite tell because babelification messes with line numbers, but it looks like the problem is that you're not returning the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh oops - thanks for the catch! |
||
return { | ||
page: require("./forwardEven").default, | ||
}; | ||
}); | ||
} else { | ||
return { | ||
page: require("./forwardEven").default, | ||
}; | ||
} | ||
} else { | ||
if (typeof window !== 'undefined') { //would be nice if this is `process.env.isServer` | ||
require.ensure(["./forwardOdd"], () => { | ||
return { | ||
page: require("./forwardOdd").default, | ||
}; | ||
}); | ||
} else { | ||
return { | ||
page: require("./forwardOdd").default, | ||
}; | ||
} | ||
} | ||
}); | ||
} | ||
|
||
getElements() { | ||
return <div>boop</div>; | ||
} | ||
} | ||
|
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>, | ||
]; | ||
} | ||
} |
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>, | ||
]; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you refactor this section a bit to limit code reuse? Something like this should work: