forked from remix-run/react-router
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
67 lines (60 loc) · 1.54 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/** @jsx React.DOM */
var React = require('react');
var Router = require('../../modules/main');
var Route = Router.Route;
var Routes = Router.Routes;
var Link = Router.Link;
var App = React.createClass({
render: function() {
return (
<div>
<ul>
<li><Link to="dashboard">Dashboard</Link></li>
<li><Link to="form">Form</Link></li>
</ul>
{this.props.activeRouteHandler() || <h1>Home</h1>}
</div>
);
}
});
var Dashboard = React.createClass({
render: function() {
return <h1>Dashboard</h1>
}
});
var Form = React.createClass({
statics: {
willTransitionFrom: function(transition, component) {
if (component.refs.userInput.getDOMNode().value !== '') {
if (!confirm('You have unsaved information, are you sure you want to leave this page?')) {
transition.abort();
}
}
}
},
handleSubmit: function(event) {
event.preventDefault();
this.refs.userInput.getDOMNode().value = '';
Router.transitionTo('/');
},
render: function() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<p>Click the dashboard link with text in the input.</p>
<input type="text" ref="userInput" defaultValue="ohai" />
<button type="submit">Go</button>
</form>
</div>
);
}
});
var routes = (
<Routes>
<Route handler={App}>
<Route name="dashboard" handler={Dashboard}/>
<Route name="form" handler={Form}/>
</Route>
</Routes>
);
React.renderComponent(routes, document.body);