Skip to content

Commit 8633e75

Browse files
committed
Merge pull request marmelab#54 from marmelab/use_browser_transpiler
[RFR] Use JSX transform in blog example
2 parents eca4145 + 7b7836f commit 8633e75

File tree

6 files changed

+28
-27
lines changed

6 files changed

+28
-27
lines changed

app/AdminBootstrap.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import {RouteHandler} from 'react-router';
2+
import {RouteHandler, Link} from 'react-router';
33

44
import Header from "./View/Common/Header";
55
import Sidebar from "./View/Common/Sidebar";
@@ -48,5 +48,6 @@ class AdminBootstrap extends React.Component {
4848
}
4949

5050
require('./autoloader')('AdminBootstrap', AdminBootstrap);
51+
require('./autoloader')('Link', Link);
5152

5253
export default AdminBootstrap;

app/Component/Column/TemplateColumn.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class TemplateColumn extends React.Component {
77

88
let computedTemplate = template;
99
if (typeof(template) === 'function') {
10-
computedTemplate = template(this.props.entry);
10+
computedTemplate = template.apply(this, [this.props.entry]);
1111
}
1212

1313
return (

examples/blog/config.js

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@
1818
};
1919
});
2020

21+
// Add custom component
22+
var SendEmail = React.createClass({
23+
render: function () {
24+
return <a className='btn btn-default' href='#/stats'>Show stats</a>;
25+
}
26+
});
27+
autoload('SendEmail', SendEmail);
28+
2129
var admin = nga.application('rest-admin backend demo') // application main title
2230
.baseApiUrl('http://localhost:3000/'); // main API endpoint
2331

@@ -114,7 +122,7 @@
114122
post.views['EditView'].fields(), // reuse fields from another view in another order
115123
nga.field('custom_action', 'template')
116124
.label('')
117-
.template('<SendEmail post="entry"></SendEmail>')
125+
.template(<SendEmail post="entry"></SendEmail>)
118126
]);
119127

120128
post.views['DeleteView']
@@ -129,7 +137,9 @@
129137
nga.field('body').label('Comment').map(truncate),
130138
nga.field(null, 'template') // template fields don't need a name in dashboard view
131139
.label('Edition')
132-
.template('<Link to="edit" params={{entity: "comments", id: entry.identifierValue}}>Edit</Link>') // you can use custom directives, too
140+
.template(function() {
141+
return <Link to="edit" params={{entity: "comments", id: this.props.entry.identifierValue}}>Edit</Link>;
142+
}) // you can use custom directives, too
133143
]);
134144

135145
comment.views['ListView']
@@ -250,35 +260,23 @@
250260
)
251261
);
252262

253-
// Add custom component
254-
var SendEmail = React.createClass({
255-
render: function () {
256-
return React.createElement('a', {className: 'btn btn-default', href: '#/stats'}, 'Show stats');
257-
}
258-
});
259-
autoload('SendEmail', SendEmail);
260-
261263
// Add custom route
262264
var ViewActions = components.ViewActions;
265+
var Route = ReactRouter.Route;
263266
var Stats = React.createClass({
264267
render: function () {
265-
return React.createElement('div', {className: 'page-header'},
266-
React.createElement(ViewActions, {buttons: ['back']}),
267-
React.createElement('h1', null, 'Stats'),
268-
React.createElement('p', {className: 'lead'}, 'You can add custom pages, too')
269-
);
268+
return <div>
269+
<ViewActions buttons={['back']} />
270+
<h1>Stats</h1>
271+
<p className='lead'>You can add custom pages, too</p>
272+
</div>;
270273
}
271274
});
272275

273-
routes.props.children.push(
274-
React.createElement(ReactRouter.Route, { name: 'stats', path: '/stats', handler: Stats })
275-
);
276+
routes.props.children.push(<Route name="stats" path="/stats" handler={Stats} />);
276277

277278
return admin;
278279
}
279280

280-
React.render(
281-
React.createElement(ReactAdmin, { configureApp: configureApp }),
282-
document.getElementById('my-app')
283-
);
281+
React.render(<ReactAdmin configureApp={configureApp} />, document.getElementById('my-app'));
284282
}());

examples/blog/fakerest-init.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
// use sinon.js to monkey-patch XmlHttpRequest
3939
sinon.FakeXMLHttpRequest.useFilters = true;
4040
sinon.FakeXMLHttpRequest.addFilter(function (method, url) {
41-
return url.indexOf('/socket.io/') !== -1;
41+
return url.indexOf('/socket.io/') !== -1 || url.indexOf('config.js') !== -1;
4242
});
4343

4444
var server = sinon.fakeServer.create();

examples/blog/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<body>
99
<div id="my-app"></div>
1010

11+
<script src="bower_components/react/JSXTransformer.js" type="text/javascript"></script>
1112
<script src="bower_components/react/react.js" type="text/javascript"></script>
1213
<script src="bower_components/react-router/build/umd/ReactRouter.min.js" type="text/javascript"></script>
1314
<script src="bower_components/fakerest/dist/FakeRest.min.js" type="text/javascript"></script>
@@ -16,6 +17,6 @@
1617
<script src="fakerest-init.js" type="text/javascript"></script>
1718

1819
<script src="http://localhost:8080/react-admin-standalone.min.js"></script>
19-
<script src="config.js"></script>
20+
<script src="config.js" type="text/jsx"></script>
2021
</body>
2122
</html>

examples/blog/test.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<body>
99
<div id="my-app"></div>
1010

11+
<script src="bower_components/react/JSXTransformer.js" type="text/javascript"></script>
1112
<script src="bower_components/react/react.js" type="text/javascript"></script>
1213
<script src="bower_components/react-router/build/umd/ReactRouter.min.js" type="text/javascript"></script>
1314
<script src="bower_components/fakerest/dist/FakeRest.min.js" type="text/javascript"></script>
@@ -16,6 +17,6 @@
1617
<script src="fakerest-init.js" type="text/javascript"></script>
1718

1819
<script src="build/react-admin-standalone.min.js"></script>
19-
<script src="config.js"></script>
20+
<script src="config.js" type="text/jsx"></script>
2021
</body>
2122
</html>

0 commit comments

Comments
 (0)