Advertisement
Felanpro

React Native (Calculator Version 1)

May 20th, 2023
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.58 KB | None | 0 0
  1. import React, { useState } from 'react';
  2. import { StatusBar } from 'expo-status-bar';
  3. import { StyleSheet, Text, View, Button, Alert, TextInput, SafeAreaView, flexDirection, TouchableOpacity, borderCurve, Dimensions } from 'react-native';
  4.  
  5.  
  6. export default function App() {
  7.  
  8. console.log(Dimensions.get("window"));
  9. const onPressButton = (buttonItem) => // When user presses a number button
  10. {
  11. if(((buttonItem == "+") || (buttonItem == "-")))
  12. {
  13.  
  14. if(buttonItem == "+")
  15. {
  16. setLastPressedButton("plus");
  17. }
  18. else if(buttonItem == "-")
  19. {
  20. setLastPressedButton("minus");
  21. }
  22.  
  23. if(lastPressedButton == "plus")
  24. {
  25. setResult(result + parseInt(textField));
  26. setTextField(result + parseInt(textField));
  27. }
  28. else if(lastPressedButton == "minus")
  29. {
  30. if(result == 0)
  31. {
  32. setResult(parseInt(textField))
  33. setTextField(parseInt(textField));
  34. }
  35. else
  36. {
  37. setResult(result - parseInt(textField));
  38. setTextField(result - parseInt(textField));
  39. }
  40. }
  41. else
  42. {
  43. if(buttonItem == "+")
  44. {
  45. setLastPressedButton("plus");
  46. }
  47. else if(buttonItem == "-")
  48. {
  49. setLastPressedButton("minus");
  50. }
  51.  
  52. }
  53.  
  54. setClear(0);
  55. }
  56. else if(buttonItem == "=")
  57. {
  58. if(lastPressedButton == "plus")
  59. {
  60. setResult(result + parseInt(textField));
  61. setTextField(result + parseInt(textField));
  62. }
  63. else if(lastPressedButton == "minus")
  64. {
  65. if(result == 0)
  66. {
  67. setResult(parseInt(textField))
  68. setTextField(parseInt(textField));
  69. }
  70. else
  71. {
  72. setResult(result - parseInt(textField));
  73. setTextField(result - parseInt(textField));
  74. }
  75. }
  76.  
  77. setClear(0);
  78. setResult(0);
  79. }
  80. else if(buttonItem == "c")
  81. {
  82. setTextField("");
  83. setResult(0);
  84. }
  85. else
  86. {
  87. clear ? setTextField(textField + buttonItem) : setTextField(buttonItem);
  88. setClear(1);
  89. }
  90. }
  91.  
  92. const [result, setResult] = useState(0);
  93. const [textField, setTextField] = useState("");
  94. const [lastPressedButton, setLastPressedButton] = useState("plus")
  95. const [clear, setClear] = useState(1);
  96.  
  97. console.log("result: " + result);
  98. console.log("operator: " + lastPressedButton);
  99.  
  100. return (
  101. <SafeAreaView style = {styles.container}>
  102.  
  103. <View style = {
  104. {
  105. backgroundColor: "lightgray",
  106. flex: 1
  107. }}>
  108.  
  109. <Text style = {{fontSize: 70}}>{textField}</Text>
  110.  
  111. </View>
  112.  
  113. <View style = {styles.buttonViewDesign}>
  114.  
  115. <TouchableOpacity
  116. style={styles.buttonDesign}
  117. onPress={() => onPressButton("1")}
  118. >
  119.  
  120. <Text style = {styles.buttonTextDesign}>1</Text>
  121.  
  122. </TouchableOpacity>
  123.  
  124. <TouchableOpacity
  125. style={styles.buttonDesign}
  126. onPress={() => onPressButton("2")}
  127. >
  128.  
  129. <Text style = {styles.buttonTextDesign}>2</Text>
  130.  
  131. </TouchableOpacity>
  132.  
  133. <TouchableOpacity
  134. style={styles.buttonDesign}
  135. onPress={() => onPressButton("3")}
  136. >
  137.  
  138. <Text style = {styles.buttonTextDesign}>3</Text>
  139.  
  140. </TouchableOpacity>
  141.  
  142. <TouchableOpacity
  143. style={styles.buttonDesign}
  144. onPress={() => onPressButton("-")}
  145. >
  146.  
  147. <Text style = {styles.buttonTextDesign}>-</Text>
  148.  
  149. </TouchableOpacity>
  150.  
  151. <TouchableOpacity
  152. style={styles.buttonDesign}
  153. onPress={() => onPressButton("4")}
  154. >
  155.  
  156. <Text style = {styles.buttonTextDesign}>4</Text>
  157.  
  158. </TouchableOpacity>
  159.  
  160. <TouchableOpacity
  161. style={styles.buttonDesign}
  162. onPress={() => onPressButton("5")}
  163. >
  164.  
  165. <Text style = {styles.buttonTextDesign}>5</Text>
  166.  
  167. </TouchableOpacity>
  168.  
  169. <TouchableOpacity
  170. style={styles.buttonDesign}
  171. onPress={() => onPressButton("6")}
  172. >
  173.  
  174. <Text style = {styles.buttonTextDesign}>6</Text>
  175.  
  176. </TouchableOpacity>
  177.  
  178. <TouchableOpacity
  179. style={styles.buttonDesign}
  180. onPress={() => onPressButton("+")}
  181. >
  182.  
  183. <Text style = {styles.buttonTextDesign}>+</Text>
  184.  
  185. </TouchableOpacity>
  186.  
  187. <TouchableOpacity
  188. style={styles.buttonDesign}
  189. onPress={() => onPressButton("7")}
  190. >
  191.  
  192. <Text style = {styles.buttonTextDesign}>7</Text>
  193.  
  194. </TouchableOpacity>
  195.  
  196. <TouchableOpacity
  197. style={styles.buttonDesign}
  198. onPress={() => onPressButton("8")}
  199. >
  200.  
  201. <Text style = {styles.buttonTextDesign}>8</Text>
  202.  
  203. </TouchableOpacity>
  204.  
  205. <TouchableOpacity
  206. style={styles.buttonDesign}
  207. onPress={() => onPressButton("9")}
  208. >
  209.  
  210. <Text style = {styles.buttonTextDesign}>9</Text>
  211.  
  212. </TouchableOpacity>
  213.  
  214. <TouchableOpacity
  215. style={styles.buttonDesign}
  216. onPress={() => onPressButton("=")}
  217. >
  218.  
  219. <Text style = {styles.buttonTextDesign}>=</Text>
  220.  
  221. </TouchableOpacity>
  222.  
  223. <TouchableOpacity
  224. style={styles.buttonDesign}
  225. onPress={() => onPressButton(0)}
  226. >
  227.  
  228. <Text style = {styles.buttonTextDesign}>0</Text>
  229.  
  230. </TouchableOpacity>
  231.  
  232. <TouchableOpacity
  233. style={styles.buttonDesign}
  234. onPress={() => onPressButton("c")}
  235. >
  236.  
  237. <Text style = {styles.buttonTextDesign}>C</Text>
  238.  
  239. </TouchableOpacity>
  240.  
  241. <StatusBar style="auto" />
  242. </View>
  243.  
  244. </SafeAreaView>
  245. );
  246. }
  247.  
  248. const styles = StyleSheet.create({
  249. container: {
  250. flex: 1,
  251. backgroundColor: '#fff',
  252. },
  253. buttonViewDesign: {
  254. backgroundColor: "black",
  255. flex: 1.5,
  256. flexDirection: "row", // main = horizontal axis, secondary = vertical axis
  257. flexWrap: "wrap",
  258. justifyContent: "flex-start", // main axis
  259. paddingHorizontal: "5%",
  260. paddingVertical: "5%"
  261. },
  262. buttonDesign: {
  263. backgroundColor: "yellow",
  264. justifyContent: "center",
  265. alignItems: "center",
  266. width: "25%",
  267. height: "25%",
  268. },
  269. buttonTextDesign: {
  270. fontSize: 40,
  271. },
  272. buttonZeroDesign: {
  273. backgroundColor: "tomato",
  274. width: "50%",
  275. height: "25%",
  276. justifyContent: "center",
  277. alignItems: "center",
  278. }
  279. });
  280.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement