Skip to content

Commit b33e972

Browse files
committed
move some styling into react
1 parent 2e2d896 commit b33e972

File tree

4 files changed

+72
-22
lines changed

4 files changed

+72
-22
lines changed

apps/src/applab/ApplabVisualizationColumn.jsx

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,48 @@
1+
var Radium = require('radium');
12
var Visualization = require('./Visualization');
23
var GameButtons = require('../templates/GameButtons');
34
var CompletionButton = require('./CompletionButton');
45
var PlaySpaceHeader = require('./PlaySpaceHeader');
56
var BelowVisualization = require('../templates/BelowVisualization');
7+
var ProtectedStatefulDiv = require('../templates/ProtectedStatefulDiv');
8+
var commonStyles = require('../commonStyles');
9+
var applabConstants = require('./constants');
610
var connect = require('react-redux').connect;
711

12+
13+
var styles = {
14+
nonResponsive: {
15+
maxWidth: applabConstants.APP_WIDTH,
16+
}
17+
};
18+
819
/**
920
* Equivalent of visualizationColumn.html.ejs. Initially only supporting
1021
* portions used by App Lab
1122
*/
1223
var ApplabVisualizationColumn = React.createClass({
1324
propTypes: {
1425
isReadOnlyWorkspace: React.PropTypes.bool.isRequired,
26+
hideSource: React.PropTypes.bool.isRequired,
27+
isEmbedView: React.PropTypes.bool.isRequired,
28+
1529
isEditingProject: React.PropTypes.bool.isRequired,
1630
screenIds: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
1731
onScreenCreate: React.PropTypes.func.isRequired,
1832
},
1933

2034
render: function () {
35+
var classes = '';
36+
if (this.props.visualizationHasPadding) {
37+
classes += 'with_padding';
38+
}
39+
40+
var vizColStyle = [
41+
(this.props.isEmbedView || this.props.hideSource) && styles.nonResponsive
42+
];
43+
2144
return (
22-
<div id="visualizationColumn">
45+
<div id="visualizationColumn" className={classes} style={vizColStyle}>
2346
{!this.props.isReadOnlyWorkspace && <PlaySpaceHeader
2447
isEditingProject={this.props.isEditingProject}
2548
screenIds={this.props.screenIds}
@@ -33,10 +56,12 @@ var ApplabVisualizationColumn = React.createClass({
3356
</div>
3457
);
3558
}
36-
})
37-
;
59+
});
3860
module.exports = connect(function propsFromStore(state) {
3961
return {
4062
isReadOnlyWorkspace: state.level.isReadOnlyWorkspace,
63+
visualizationHasPadding: state.level.visualizationHasPadding,
64+
hideSource: state.level.hideSource,
65+
isEmbedView: state.level.isEmbedView
4166
};
42-
})(ApplabVisualizationColumn);
67+
})(Radium(ApplabVisualizationColumn));

apps/src/applab/Visualization.jsx

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,45 @@
1+
var Radium = require('radium');
12
var applabConstants = require('./constants');
23
var commonStyles = require('../commonStyles');
34
var ProtectedStatefulDiv = require('../templates/ProtectedStatefulDiv');
5+
var connect = require('react-redux').connect;
6+
7+
var styles = {
8+
nonResponsive: {
9+
width: applabConstants.APP_WIDTH,
10+
height: applabConstants.APP_HEIGHT - applabConstants.FOOTER_HEIGHT
11+
},
12+
share: {
13+
// overrides nonReponsive
14+
height: applabConstants.APP_HEIGHT
15+
}
16+
};
17+
418

519
var Visualization = React.createClass({
20+
propTypes: {
21+
visualizationHasPadding: React.PropTypes.bool.isRequired,
22+
hideSource: React.PropTypes.bool.isRequired,
23+
isEmbedView: React.PropTypes.bool.isRequired,
24+
},
25+
626
render: function () {
727
var appWidth = applabConstants.APP_WIDTH;
828
var appHeight = applabConstants.APP_HEIGHT - applabConstants.FOOTER_HEIGHT;
29+
30+
var classes = '';
31+
if (this.props.visualizationHasPadding) {
32+
classes += 'with_padding';
33+
}
34+
35+
var vizStyle = [
36+
(this.props.isEmbedView || this.props.hideSource) && styles.nonResponsive,
37+
this.props.isShareView && styles.share
38+
];
39+
940
return (
1041
<ProtectedStatefulDiv>
11-
<div id="visualization">
42+
<div id="visualization" className={classes} style={vizStyle}>
1243
<div id="divApplab" className="appModern" tabIndex="1"/>
1344
<div id="designModeViz" className="appModern" style={commonStyles.hidden}/>
1445
<svg version="1.1"
@@ -25,4 +56,10 @@ var Visualization = React.createClass({
2556
}
2657
});
2758

28-
module.exports = Visualization;
59+
module.exports = connect(function propsFromStore(state) {
60+
return {
61+
visualizationHasPadding: state.level.visualizationHasPadding,
62+
hideSource: state.level.hideSource,
63+
isEmbedView: state.level.isEmbedView
64+
};
65+
})(Radium(Visualization));

apps/src/applab/applab.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -787,22 +787,6 @@ Applab.init = function (config) {
787787
var onMount = function () {
788788
studioApp.init(config);
789789

790-
var viz = document.getElementById('visualization');
791-
var vizCol = document.getElementById('visualizationColumn');
792-
793-
if (!config.noPadding) {
794-
viz.className += " with_padding";
795-
vizCol.className += " with_padding";
796-
}
797-
798-
if (Applab.reduxStore.getState().level.isEmbedView || config.hideSource) {
799-
// no responsive styles active in embed or hideSource mode, so set sizes:
800-
viz.style.width = Applab.appWidth + 'px';
801-
viz.style.height = (shouldRenderFooter() ? Applab.appHeight : Applab.footerlessAppHeight) + 'px';
802-
// Use offsetWidth of viz so we can include any possible border width:
803-
vizCol.style.maxWidth = viz.offsetWidth + 'px';
804-
}
805-
806790
if (debuggerUi) {
807791
debuggerUi.initializeAfterDomCreated({
808792
defaultStepSpeed: config.level.sliderSpeed
@@ -876,6 +860,8 @@ Applab.init = function (config) {
876860
Applab.reduxStore.dispatch(setInitialLevelProps({
877861
assetUrl: studioApp.assetUrl,
878862
channelId: config.channel,
863+
visualizationHasPadding: !config.noPadding,
864+
hideSource: !!config.hideSource,
879865
isDesignModeHidden: !!config.level.hideDesignMode,
880866
isEmbedView: !!config.embed,
881867
isReadOnlyWorkspace: !!config.readonlyWorkspace,

apps/src/applab/reducers.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ function level(state, action) {
3636
var allowedKeys = [
3737
'assetUrl',
3838
'channelId',
39+
'visualizationHasPadding',
40+
'hideSource',
3941
'isDesignModeHidden',
4042
'isEmbedView',
4143
'isReadOnlyWorkspace',

0 commit comments

Comments
 (0)