Skip to content

Commit

Permalink
first commit for branch
Browse files Browse the repository at this point in the history
  • Loading branch information
albertwchang committed Jun 22, 2015
1 parent 592247a commit d67187c
Show file tree
Hide file tree
Showing 13 changed files with 372 additions and 321 deletions.
28 changes: 28 additions & 0 deletions Comps/NavBarTitle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
var React = require("react-native");

// Utilities
var _ = require("lodash");

var {
SegmentedControlIOS
} = React;

module.exports = React.createClass({
render: function() {
var navBarStyle = {
justifyContent: "center",
alignItems: "center",
width: this.props.width * 6/10,
};

return (
<SegmentedControlIOS
enabled={true}
onChange={this.props.changeScene}
selectedIndex={this.props.sceneIndex}
style={navBarStyle}
tintColor="orange"
values={["Details", "Map"]} />
)
}
});
42 changes: 20 additions & 22 deletions Scenes/AppScene.js → Contexts/AppContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var React = require("react-native");
var Reflux = require("reflux");

// SCENES
var SummaryScene = require("../Scenes/SummaryScene");
var SummaryContext = require("./SummaryContext");

// ACTIONS && STORES
var HostActions = require("../Actions/HostActions");
Expand All @@ -25,7 +25,7 @@ var {
var styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#000000",
backgroundColor: "#EFEFFB",
},
navBar: {
backgroundColor: "#A4A4A4"
Expand All @@ -35,7 +35,7 @@ var styles = StyleSheet.create({
}
});

var AppScene = React.createClass({
module.exports = React.createClass({
getInitialState: function() {
return {
chosenTab: "main",
Expand Down Expand Up @@ -64,43 +64,43 @@ var AppScene = React.createClass({
});
},

_renderScene: function(route, navigator) {
var Scene = route.component;
_renderContext: function(route, navigator) {
var Context = route.component;
var navBar = null;

return (
<View style={styles.container}>
<Scene
<Context
navigator={navigator}
route={route} />
</View>
);
},

_renderContent: function() {
var component = null;
_routeContext: function() {
var context = null;
switch(this.state.chosenTab) {
case "main":
component = SummaryScene;
context = SummaryContext;

case "add":
component = SummaryScene;
context = SummaryContext;

case "profile":
component = SummaryScene;
context = SummaryContext;

case "settings":
component = SummaryScene;
context = SummaryContext;

default:
component = SummaryScene;
context = SummaryContext;
}

return (
<Navigator
renderScene={this._renderScene.bind(this)}
renderScene={this._renderContext}
initialRoute={{
component: component,
component: context,
}} />
);
},
Expand All @@ -119,7 +119,7 @@ var AppScene = React.createClass({
});
}}
selected={this.state.chosenTab === 'main'}
title="Items">{this._renderContent(this.props.navigator)}
title="Items">{this._routeContext(this.props.navigator)}
</TabBarIOS.Item>

<TabBarIOS.Item
Expand All @@ -132,7 +132,7 @@ var AppScene = React.createClass({
});
}}
selected={this.state.chosenTab === "add"}
title="Add">{this._renderContent()}
title="Add">{this._routeContext()}
</TabBarIOS.Item>

<TabBarIOS.Item
Expand All @@ -144,7 +144,7 @@ var AppScene = React.createClass({
});
}}
selected={this.state.chosenTab === 'profile'}
title="Profile">{this._renderContent()}
title="Profile">{this._routeContext()}
</TabBarIOS.Item>

<TabBarIOS.Item
Expand All @@ -156,11 +156,9 @@ var AppScene = React.createClass({
});
}}
selected={this.state.chosenTab === 'settings'}
title="Settings">{this._renderContent()}
title="Settings">{this._routeContext()}
</TabBarIOS.Item>
</TabBarIOS>
);
}
});

module.exports = AppScene;
});
16 changes: 6 additions & 10 deletions Scenes/AuthScene.js → Contexts/AuthContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ var Icons = require("react-native-vector-icons");
var Reflux = require("reflux");

// PERSONAL COMPONENTS
var LoginComp = require("../Comps/LoginComp");
var RegisterComp = require("../Comps/RegisterComp");
var LoginScene = require("../Scenes/LoginScene");
var RegisterScene = require("../Scenes/RegisterScene");

// ACTIONS && HOSTS
var HostStore = require("../Stores/HostStore");
Expand All @@ -32,7 +32,7 @@ var styles = StyleSheet.create({
},
});

var AuthScene = React.createClass({
module.exports = React.createClass({
mixins: [Reflux.connect(HostStore), Reflux.ListenerMixin],
getInitialState: function() {
return {
Expand All @@ -51,16 +51,12 @@ var AuthScene = React.createClass({
},

render: function() {
var component = (this.state.preferredScene == "login") ? LoginComp : RegisterComp;

return (
<Navigator
renderScene={this._renderScene.bind(this)}
renderScene={this._renderScene}
initialRoute={{
component: component,
component: (this.state.preferredScene == "login") ? LoginScene : RegisterScene,
}} />
);
},
});

module.exports = AuthScene;
});
141 changes: 141 additions & 0 deletions Contexts/ItemContext.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
'use strict';

// REACT PARTS
var React = require("react-native");
var Reflux = require("reflux");
var NavBar = require("react-native-navbar");

// COMPONENTS
var NavBarTitle = require("../Comps/NavBarTitle");
var NavItem = require("../Comps/NavItem");

// ACTIONS && STORES
var ItemActions = require("../Actions/ItemActions");
var ItemStore = require("../Stores/ItemStore");
var HostActions = require("../Actions/HostActions");
var HostStore = require("../Stores/HostStore");
var UserActions = require("../Actions/UserActions");
var UserStore = require("../Stores/UserStore");

// SCENES
var MapScene = require("../Scenes/MapScene");
var ItemDetailScene = require("../Scenes/ItemDetailScene");

// Utilities
var _ = require("lodash");

var {
Navigator,
StyleSheet,
View,
} = React;

var styles = StyleSheet.create({
container: {
flex: 1,
},
main: {
flex: 1,
},
})

module.exports = React.createClass({
mixins: [Reflux.connect(HostStore), Reflux.connect(ItemStore), Reflux.connect(UserStore)],
getInitialState: function() {
return {
author: this.props.route.passProps.author,
context: this.props.route.passProps.context,
dims: this.props.route.passProps.dims,
imageDims: null,
item: this.props.route.passProps.item,
scenes: [
<ItemDetailScene
currentUser={this.state.authenticatedUser}
db={this.state.db}
dims={this.state.dims}
item={this.state.item}
author={this.state.author} />,
<MapScene
authors={[this.state.author]}
context="all"
dims={this.state.dims}
items={[this.state.item]} />
],
sceneIndex: 0,
};
},

_changeScene: function(e) {
var nextIndex = e.nativeEvent.selectedSegmentedIndex;
this.setState({
sceneIndex: 1 - nextIndex,
});
},

_setDims: function(e) {
if (this.state.dims == null) {
var layout = e.nativeEvent.layout;

this.setState({
dims: {
height: layout.height,
width: layout.width,
}
});
} else
return;
},

_renderScene: function(route, navigator) {
var navBar = null;

if (route.navigationBar) {
navBar = React.addons.cloneWithProps(route.navigationBar, {
navigator: navigator,
route: route
});

navBar._store.props.onPrev = function() {
this.props.navigator.pop();
}.bind(this);
}

var Scene = this.state.scenes[this.state.sceneIndex];

return (
<View style={styles.container}>
{navBar}

<View style={styles.main} onLayout={this._setDims}>
{Scene}
</View>
</View>
);
},

render: function() {
var navBarTitle =
<NavBarTitle
changeScene={this._changeScene}
sceneIndex={this.state.sceneIndex}
width={this.state.dims.width} />;

var navBar =
<NavBar
title="Detail"
backgroundColor="#A4A4A4"
buttonsColor="#FFFFFF"
titleColor="#FFFFFF"
prevTitle="Back"
customTitle={navBarTitle} />

return (
<Navigator
renderScene={this._renderScene}
initialRoute={{
component: (this.state.sceneIndex == 0) ? ItemDetailScene : MapScene,
navigationBar: navBar,
}} />
)
}
});
Loading

0 comments on commit d67187c

Please sign in to comment.