Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.50 KB | None | 0 0
  1. var React = require('react-native')
  2. var Template = require('./Template')
  3. var teamlogo = require('../img/teamlogo01.png')
  4. var line = require('../img/line.png')
  5. var Collapsible = require('react-native-collapsible');
  6. var arrow = require('../img/teamArrow.png')
  7. var skeletal = require('../img/mrskeletal.png')
  8. var remi = require('../img/remi91.png')
  9. var lucaorio = require('../img/lucaorio_.png')
  10. var sathia = require('../img/sathia.png')
  11. var challengerCup = require('../img/challengercup.gif')
  12. var challengecup = require('../img/challengercup.png')
  13. var challengerothercup = require('../img/challengerothercup.png')
  14. import {Dimensions} from 'react-native';
  15.  
  16. var {
  17. View,
  18. Text,
  19. StyleSheet,
  20. Image,
  21. TouchableHighlight
  22. } = React;
  23.  
  24. var styles = StyleSheet.create({
  25. header: {
  26. color: 'white',
  27. marginTop: vh(11),
  28. marginLeft: vw(125),
  29. fontSize: vw(20),
  30. fontWeight: '500',
  31. },
  32. motto: {
  33. color: 'white',
  34. marginTop: vh(12),
  35. marginLeft: vw(123),
  36. fontSize: 15,
  37. fontWeight: '400',
  38. },
  39. locationTxt: {
  40. color: 'white',
  41. marginTop: vh(12),
  42. marginLeft: vw(110),
  43. fontSize: 12,
  44. fontWeight: '400',
  45. },
  46. winsTxt: {
  47. color: 'white',
  48. marginTop: vh(12),
  49. marginLeft: vw(127),
  50. fontSize: 12,
  51. fontWeight: '400',
  52. },
  53. team: {
  54. position: 'absolute',
  55. marginLeft: vw(101),
  56. marginTop: vh(94),
  57. color: 'white',
  58. fontSize: vw(20)
  59. },
  60. image: {
  61. alignItems: 'center',
  62. marginTop: vh(22),
  63. marginLeft: vw(110),
  64. },
  65. line: {
  66. marginTop: vh(8),
  67. marginLeft: vw(55),
  68. },
  69. collapsedPlayers:{
  70. backgroundColor:'black',
  71. marginTop: vh(-36),
  72. marginLeft: vw(112),
  73. width: vw(182),
  74. height: vh(34),
  75. opacity: 0.5,
  76. padding: 4
  77. },
  78. collapsed:{
  79. backgroundColor:'black',
  80. marginTop: vh(3),
  81. marginLeft: vw(78),
  82. width: vw(216),
  83. height: vh(34),
  84. opacity: 0.5,
  85. },
  86. description:{
  87. backgroundColor:'black',
  88. marginTop: vh(19),
  89. marginLeft: vw(78),
  90. height: vh(18),
  91. width: vw(216),
  92. opacity: 0.5,
  93. padding: 4
  94. },
  95. txt:{
  96. color: 'white',
  97. fontWeight: '800',
  98. fontSize: 12
  99. },
  100. teamArrow:{
  101. marginTop:vh(-12),
  102. marginLeft: vw(197)
  103. },
  104. imageCollapse: {
  105. height: vh(34),
  106. width: vw(34),
  107. marginTop: vh(4),
  108. marginLeft: vw(78),
  109. //opacity: 1
  110. },
  111. txtCollapse:{
  112. color: 'white',
  113. fontWeight: '500',
  114. fontSize: vw(13.38),
  115. },
  116. smalltxtCollapse:{
  117. color: 'white',
  118. fontWeight: '500',
  119. fontSize:vw (8.6),
  120. },
  121. upcome:{
  122. height: vh(34),
  123. width: vw(34),
  124. marginLeft: vw(78),
  125. marginTop: vh(10)
  126. }
  127. });
  128.  
  129. function vw(width) {
  130. return Dimensions.get('window').width * (width / 375);
  131. }
  132.  
  133. function vh(height) {
  134. return Dimensions.get('window').height * (height / 667);
  135. }
  136.  
  137.  
  138. class TeamPage extends React.Component {
  139.  
  140. render(){
  141. return(
  142. <Template title='Team' right={Template}>
  143. <Image source={teamlogo} style={styles.image} />
  144. <Text style={styles.header}>Immortals FC</Text>
  145. <Text style={styles.motto}>"United we stand!"</Text>
  146. <Text style={styles.locationTxt}>Location: Gombak, Selangor</Text>
  147. <Text style={styles.winsTxt}>Tournament Wins: 2</Text>
  148. <Image source={line} style={styles.line}/>
  149. <CollapsibleItem title='Description' items='1'>
  150. <Text style={styles.txtCollapse}>We are Immortal</Text>
  151. </CollapsibleItem>
  152. <CollapsibleItem title='Players (4/25)' items='4'
  153. element1={<ListItemWithImage username='remi91' rank='Captain'/>}
  154. element2={<ListItemWithImage username='mrskeletal' rank='Co-Captain'/>}
  155. element3={<ListItemWithImage username='lucaorio_' rank='Co-Captain'/>}
  156. element4={<ListItemWithImage username='sathiak7' rank='Hairy'/>}
  157. />
  158. <CollapsibleItem title='Achievements' items='2'
  159. element1={<ListItemWithImage username='Challlenger League' rank='Rank: 1'/>}
  160. element2={<ListItemWithImage username='Nottingham Cup' rank='Rank: 2'/>}/>
  161. <CollapsibleItem title='Challenge Requests (0)' items='1'>
  162. <Text style={styles.txt}>sathia</Text>
  163. </CollapsibleItem>
  164. <CollapsibleItem title='Upcoming Challenges (2)' items='2'
  165. element1={<ListItemWithImage username='Pasukan Rambut' rank='12/12/12'/>}
  166. element2={<ListItemWithImage username='Team Gill' rank='13/13/13'/>}/>
  167. </Template>
  168. )
  169. }
  170.  
  171. }
  172. class ListItemWithImage extends React.Component{
  173. render(){
  174. return(
  175. <View>
  176. <Text style={styles.txtCollapse}>{this.props.username}</Text>
  177. <Text style={styles.smalltxtCollapse}>{this.props.rank}</Text>
  178. </View>
  179. )
  180. }
  181. }
  182. ListItemWithImage.PropTypes = {
  183. username: React.PropTypes.string.isRequired,
  184. rank: React.PropTypes.string.isRequired
  185. }
  186. module.exports = ListItemWithImage;
  187. class CollapsibleItem extends React.Component {
  188. constructor(props){
  189. super(props);
  190. this.state = {
  191. descCollapsed:true
  192. }
  193. }
  194. handleSubmit() {
  195. if(this.state.descCollapsed){
  196. this.setState({descCollapsed:false});
  197. } else {
  198. this.setState({descCollapsed:true});
  199. }
  200. }
  201. render(){
  202. switch (this.props.items) {
  203. case '1': return(
  204. <View>
  205. <TouchableHighlight
  206. style={styles.description}
  207. onPress={this.handleSubmit.bind(this)}
  208. underlayColor="black">
  209. <View>
  210. <Text style={styles.txt}>{this.props.title}</Text>
  211. <Image style={styles.teamArrow}source={arrow}/>
  212. </View>
  213. </TouchableHighlight>
  214. <Collapsible collapsed={this.state.descCollapsed}>
  215. <View style={styles.collapsed}>{this.props.children}</View>
  216. </Collapsible>
  217. </View>)
  218. case '2': return(
  219. <View>
  220. <TouchableHighlight
  221. style={styles.description}
  222. onPress={this.handleSubmit.bind(this)}
  223. underlayColor="black">
  224. <View>
  225. <Text style={styles.txt}>{this.props.title}</Text>
  226. <Image style={styles.teamArrow}source={arrow}/>
  227. </View>
  228. </TouchableHighlight>
  229. <Collapsible collapsed={this.state.descCollapsed}>
  230. <Image style={styles.upcome} source={challengecup}/>
  231. <View style={styles.collapsedPlayers}>{this.props.element1}</View>
  232. </Collapsible>
  233. <Collapsible collapsed={this.state.descCollapsed}>
  234. <Image style={styles.upcome} source={challengerCup}/>
  235. <View style={styles.collapsedPlayers}>{this.props.element2}</View>
  236. </Collapsible>
  237. </View>)
  238. case '4':return(
  239. <View>
  240. <TouchableHighlight
  241. style={styles.description}
  242. onPress={this.handleSubmit.bind(this)}
  243. underlayColor="black">
  244. <View>
  245. <Text style={styles.txt}>{this.props.title}</Text>
  246. <Image style={styles.teamArrow}source={arrow}/>
  247. </View>
  248. </TouchableHighlight>
  249. <Collapsible collapsed={this.state.descCollapsed}>
  250. <Image source={remi} style={styles.imageCollapse}/>
  251. <View style={styles.collapsedPlayers}>{this.props.element1}</View>
  252. </Collapsible>
  253. <Collapsible collapsed={this.state.descCollapsed}>
  254. <Image source={skeletal} style={styles.imageCollapse}/>
  255. <View style={styles.collapsedPlayers}>{this.props.element2}</View>
  256. </Collapsible>
  257. <Collapsible collapsed={this.state.descCollapsed}>
  258. <Image source={lucaorio} style={styles.imageCollapse}/>
  259. <View style={styles.collapsedPlayers}>{this.props.element3}</View>
  260. </Collapsible>
  261. <Collapsible collapsed={this.state.descCollapsed}>
  262. <Image source={sathia} style={styles.imageCollapse}/>
  263. <View style={styles.collapsedPlayers}>{this.props.element4}</View>
  264. </Collapsible>
  265. </View>)
  266. }
  267.  
  268. }
  269. }
  270.  
  271. CollapsibleItem.PropTypes = {
  272. title: React.PropTypes.string.isRequired,
  273. items: React.PropTypes.string.isRequired,
  274. element1: React.PropTypes.component,
  275. element2: React.PropTypes.component,
  276. element3: React.PropTypes.component,
  277. element4: React.PropTypes.component
  278. }
  279.  
  280. module.exports=CollapsibleItem;
  281. module.exports = TeamPage;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement