Guest User

Untitled

a guest
May 8th, 2021
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import { Text, View, StyleSheet, SafeAreaView, TouchableOpacity, FlatList} from 'react-native';
  3.  
  4. import database from '@react-native-firebase/database';
  5.  
  6. class HomePedidos extends React.Component {
  7.     state = {itens: ""};
  8.     state = {desativado: ""};
  9.     state = {novositens: ""};
  10.  
  11.     componentDidMount() {
  12.         let dbRef = database().ref('/cafe/itens');
  13.         this.listenerFirebase(dbRef);  
  14.     }
  15.    
  16.     listenerFirebase(dbRef) {
  17.         const newItens = [];
  18.         dbRef.once('value', data => {
  19.             data.forEach(child => {
  20.                 newItens.push({
  21.                     name: child.val().name,
  22.                     key: child.key
  23.                 });
  24.                 this.setState({itens: newItens});
  25.             })
  26.         })
  27.     }
  28.  
  29.     addItem ( chave, nome) {
  30.         this.setState({
  31.             desativados: this.state.desativado.push(chave),
  32.             bagulho: this.state.novositens.push(nome)
  33.         })
  34.     }
  35.  
  36.     addPedido () {
  37.         let dbRef2 = database().ref('/cafe/pedidos');
  38.         let dbRef3 = database().ref('/cafe/pedidos');
  39.         const higher_id = 0;
  40.         dbRef2.orderByChild("number").limitToLast(1).once("value", data => {
  41.             higher_id = data.val().number;
  42.         })
  43.         higher_id++;
  44.         const itensAdicionar = this.state.novositens;
  45.         dbRef3.push({
  46.             status: "Solicitado",
  47.             number: higher_id,
  48.             itens: itensAdicionar
  49.         })
  50.     }
  51.  
  52.     render(){
  53.         const {itens} = this.state;
  54.         const {desativado} = this.state;
  55.         const {novositens} = this.state;
  56.  
  57.         const renderItem = ( {item} ) => {
  58.             if(desativado == undefined){
  59.                 return(
  60.                     <View style={styles.itemContainer}>
  61.                         <View style={styles.item}>
  62.                             <Text style={styles.itemTitle}> {" " + item.name + " "}</Text>
  63.                         </View>
  64.                         <TouchableOpacity style={styles.addButtonItem} onPress={this.addItem(item.key, item.name)}>
  65.                             <Text style={styles.itemTitle}> + </Text>
  66.                         </TouchableOpacity>
  67.                     </View>
  68.                 );
  69.             }else if(desativado.includes(item.key)){
  70.                 return(
  71.                     <View style={styles.itemContainer}>
  72.                         <View style={styles.item}>
  73.                             <Text style={styles.itemTitle}> {" " + item.name + " "}</Text>
  74.                         </View>
  75.                         <TouchableOpacity style={styles.addButtonItem} onPress={this.addItem(item.key, item.name)}>
  76.                             <Text style={styles.itemTitle}> + </Text>
  77.                         </TouchableOpacity>
  78.                     </View>
  79.                 );
  80.             }
  81.         }
  82.         return(
  83.             <SafeAreaView style={styles.container}>
  84.                 <Text style={styles.texto}>
  85.                     Vamos fazer o pedido do café?
  86.                 </Text>
  87.                 <Text style={styles.emoji}>
  88.                     ☕️
  89.                 </Text>
  90.                 <TouchableOpacity style={styles.addPedidoButton}>
  91.                     <Text style={styles.addPedidoTitle} onPress={() => this.addPedido}> Confirmar Pedido </Text>
  92.                 </TouchableOpacity>
  93.                 <FlatList
  94.                 data={itens}
  95.                 renderItem={renderItem}
  96.                 keyExtractor={item => item.key}
  97.                 />
  98.             </SafeAreaView>
  99.         );
  100.     }
  101. }
  102.  
  103. const styles = StyleSheet.create({
  104.     item:{
  105.         backgroundColor:"#d1250f",
  106.         width:"80%",
  107.         flexDirection:"row",
  108.         paddingVertical:10,
  109.     },
  110.     itemTitle:{
  111.         fontSize:22,
  112.         color:"#fff",
  113.         textAlign:"left"
  114.     },
  115.     container:{
  116.         flex: 1,
  117.         justifyContent:"flex-start",
  118.         backgroundColor:"#eee",
  119.         alignItems:"center"
  120.     },
  121.     texto:{
  122.         fontSize:25,
  123.         color:"#000",
  124.         textAlign:"center",
  125.         marginTop:20
  126.     },
  127.     emoji:{
  128.         fontSize:50,
  129.         marginBottom:20
  130.     },
  131.     addButtonItem:{
  132.         backgroundColor:"#b8220f",
  133.         textAlign:"center",
  134.         justifyContent:"center",
  135.         paddingHorizontal:20
  136.     },
  137.     itemContainer:{
  138.         flexDirection:"row",
  139.         justifyContent:"center"
  140.     },
  141.     addPedidoButton:{
  142.         backgroundColor:"#d1250f",
  143.         textAlign:"center",
  144.         justifyContent:"center",
  145.         paddingHorizontal:30,
  146.         paddingVertical:10,
  147.         marginBottom:10,
  148.         borderRadius:44
  149.     },
  150.     addPedidoTitle:{
  151.         color: "#fff",
  152.         fontSize:22
  153.     }
  154. })
  155. export default HomePedidos;
Advertisement
Add Comment
Please, Sign In to add comment