Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React,{ Component } from 'react';
- import OfflineNotice from './OfflineNotice';
- import base from '../firebaseConfig';
- import axios from 'axios';
- import { SafeAreaView, Alert, View, Text, StyleSheet, StatusBar, AsyncStorage } from 'react-native';
- import { Container, Content, Card, CardItem, Header, Thumbnail, Item, Left, Right, Body, Button, Icon, Input, Image, List, ListItem, Tab ,Tabs, TabHeading} from 'native-base';
- import { ConfirmDialog } from 'react-native-simple-dialogs';
- import FastImage from 'react-native-fast-image';
- import {Collapse,CollapseHeader, CollapseBody, AccordionList} from 'accordion-collapse-react-native';
- var totalItems = 0;
- var foo = null;
- export default class Orders extends Component{
- constructor(props) {
- super(props);
- this.state = {
- orders : [],
- };
- AsyncStorage.getItem("userKey").then((value) => {
- this.setState({"userKey": value});
- base.bindToState('liquorOrders', {
- context: this,
- state: 'orders',
- asArray: true,
- queries: {
- orderByChild: 'userid',
- equalTo: this.state.userKey,
- }
- })
- }).done();
- this._body = this._body.bind(this);
- }
- _head(order){
- return(
- <Card style={{borderColor:'transparent',backgroundColor:'#fff',paddingLeft:10}}>
- <Text style={{ fontSize: 18, fontFamily: 'EncodeSansCondensed-Bold',color: '#222',paddingTop:10,paddingBottom:10}}>{order.date}</Text>
- </Card>
- );
- }
- _body(order){
- return (
- <Tabs tabBarPosition='top' tabBarUnderlineStyle={styles.tabBarDesign} style={{elevation:1}}>
- <Tab heading={ <TabHeading style={styles.tabBackground}><Text style={{textAlign:'center',color:'#fff',fontFamily:'EncodeSansCondensed-Bold',fontSize:18}}>SUMMARY</Text></TabHeading>} style={{textAlign:'center'}}>
- <Card key={order.key} style={{flex: 0,width:'95%',alignSelf: 'flex-start',marginLeft:'2.5%',marginTop:'2.5%',marginBottom:15}}>
- <List>
- <ListItem itemDivider>
- <Left>
- <Icon type='FontAwesome' name='clock-o' style={{color:'#000',fontSize:20}} />
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#222',paddingLeft:6}}>Delivery Slot</Text>
- </Left>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Left>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{order.date}</Text>
- </Left>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Left>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{order.deliveryTiming}</Text>
- </Left>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Left>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{order.status}</Text>
- </Left>
- </ListItem>
- <ListItem itemDivider>
- <Icon type='FontAwesome' name='home' style={{color:'#000',fontSize:20}} />
- <Text style={{ fontSize: 16, fontFamily: 'EncodeSansCondensed-Bold',color : '#222',paddingLeft:6 }}>Address</Text>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{order.name}</Text>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{ order.address.appartment + ',' + order.address.landmark + ',' + order.address.street + ',' + order.address.pincode }</Text>
- </ListItem>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>{ order.mobile }</Text>
- </ListItem>
- <ListItem itemDivider>
- <Icon type='FontAwesome' name='bank' style={{color:'#000',fontSize:14}} />
- <Text style={{ fontSize: 16, fontFamily: 'EncodeSansCondensed-Bold',color : '#222',paddingLeft:6 }}>Payment Details</Text>
- </ListItem>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444'}}>Order No</Text>
- </View>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444',textAlign:'right'}}>{(order.key).substring(14, )}</Text>
- </View>
- </ListItem>
- </View>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444' }}>Payment Option</Text>
- </View>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444',textAlign:'right'}}>{order.paymentMode }</Text>
- </View>
- </ListItem>
- </View>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444'}}>Sub Total</Text>
- </View>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444',textAlign:'right' }}>
- <Icon type='FontAwesome' name='rupee' style={{color:'#000',fontSize:15}} />
- { ' ' + order.amount }</Text>
- </View>
- </ListItem>
- </View>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Medium',color: '#444'}}>Delivery Charges</Text>
- </View>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444',textAlign:'right' }}>
- { ' FREE '}</Text>
- </View>
- </ListItem>
- </View>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444' }}>Total</Text>
- </View>
- <View style={{width: '50%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444',textAlign:'right' }}>
- <Icon type='FontAwesome' name='rupee' style={{color:'#000',fontSize:15}} />
- { ' ' + order.amount }</Text>
- </View>
- </ListItem>
- </View>
- <View style={{flex: 1, flexDirection: 'row',justifyContent: 'center'}}>
- {
- (order.status === 'On The Way') ?
- <View style={{width: '50%',backgroundColor: 'green',borderWidth:1,borderColor:'green',justifyContent: 'center'}}>
- <Button transparent onPress={ () => {
- this.props.navigation.navigate('trackOrder',{ mobile : order.deliveryPerson });
- //this.props.navigation.replace('trackOrder','','');
- } } style={{textAlign:'center',justifyContent: 'center'}}>
- <Text style={{ fontSize: 18, fontFamily: 'EncodeSansCondensed-Bold',color: '#fff',textAlign:'center',padding:10, marginLeft:'20%',marginRight:'15%'}}>Track Order</Text>
- </Button>
- </View> :
- <View style={{width: '50%',backgroundColor: '#eee',borderWidth:1,borderColor:'#eee',justifyContent: 'center'}}>
- <Button transparent style={{textAlign:'center',justifyContent: 'center'}}>
- <Text style={{ fontSize: 18, fontFamily: 'EncodeSansCondensed-Bold',color: '#fff',textAlign:'center',padding:10, marginLeft:'20%',marginRight:'15%'}}>Track Order</Text>
- </Button>
- </View>
- }
- <View style={{width: '50%',backgroundColor: '#fff',borderWidth:1,borderColor:'#fff',justifyContent: 'center'}}>
- <Button onPress={ () => {
- Alert.alert(
- 'Cancel Order',
- 'Are you sure ? ',
- [
- {text: 'NO', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
- {text: 'YES', onPress: () => {
- base.remove('liquorOrders/'+order.key).then( data => {
- axios.get('http://smst.inroys.in/vendorsms/pushsms.aspx?user=liquor_cart&password=jaipur4321&msisdn=91' + order.mobile +'&sid=LQRCRT&msg=Hello '+ order.name +', you Order No.'+ order.key.substring(14,) + ' has been cancelled.'+'&fl=0&gwid=2')
- .then(function (response) {
- alert('Order Cancelled !')
- })
- .catch(function (error) {
- console.log(error);
- });
- }).catch( err => {
- console.log('Error Occured')
- })
- }},
- ],
- { cancelable: false }
- )
- }} transparent style={{justifyContent: 'center'}}>
- <Text style={{ fontSize: 18, fontFamily: 'EncodeSansCondensed-Bold',color: 'red',textAlign:'center',padding:10,borderLeftWidth:0,margin:'15% 15%'}}>Cancel Order</Text>
- </Button>
- </View>
- </View>
- </List>
- </Card>
- </Tab>
- <Tab heading={ <TabHeading style={styles.tabBackground}><Text style={{textAlign:'center',color:'#fff',fontFamily:'EncodeSansCondensed-Bold',fontSize:18}}>ITEMS</Text></TabHeading>} style={{textAlign:'center'}}>
- <Content>
- <List>
- <View style={{flex: 1, flexDirection: 'row'}}>
- <ListItem itemDivider style={{borderColor:'transparent',borderWidth:0}}>
- <View style={{width: '100%'}}>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444',textAlign:'center' }}>{order.totalItems + ' ITEMS ' + ' ' + ':' + ' ' }<Icon type='FontAwesome' name='rupee' style={{color:'#000',fontSize:15}} />
- {' '+'AMOUNT' +' : ' + order.amount }
- </Text>
- </View>
- </ListItem>
- </View>
- {
- _.map(order.item ,data => {
- totalItems = parseInt(totalItems) + parseInt(data.orderQty)
- return(
- <View>
- <Card key={data.key}>
- <ListItem>
- <FastImage
- style={{
- flex: 0,
- width: 70,
- height: 105,
- justifyContent: 'center',
- }}
- source={{
- uri: data.thumb,
- priority: FastImage.priority.normal,
- }}
- resizeMode={FastImage.resizeMode.stretch}
- />
- <Body>
- <Text style={{fontFamily:'EncodeSansCondensed-Bold',color:'#000',fontSize:20,paddingLeft:10,marginTop:0}}>{data.name}</Text>
- <Text style={{fontFamily:'EncodeSansCondensed-Bold',color:'#000',fontSize:18,paddingLeft:10,marginTop:5}} ><Icon type='FontAwesome' name='rupee' style={{color:'#000',fontSize:18}} />
- {data.orderQty + 'x' + data.price}</Text>
- </Body>
- <Right>
- <Text style={{ fontSize: 15, fontFamily: 'EncodeSansCondensed-Bold',color: '#444',textAlign:'right',marginTop:-40}}>
- <Icon type='FontAwesome' name='rupee' style={{color:'#000',fontSize:15}} />
- { data.orderQty * data.price }
- </Text>
- </Right>
- </ListItem>
- </Card>
- </View>
- )
- })
- }
- </List>
- </Content>
- </Tab>
- </Tabs>
- );
- }
- render(){
- // _.forEach(this.state.cartItems, (val) => {
- // console.log("shola"+val)
- // })
- return(
- <SafeAreaView style={{flex:1,backgroundColor:'#000'}}>
- <Container style={{backgroundColor:'#FFF'}}>
- <OfflineNotice />
- <StatusBar hidden={true} />
- <Header style={styles.header}>
- <Left>
- <Button onPress={() => this.props.navigation.navigate('Account')} style={{backgroundColor:'transparent',marginLeft:-20}} >
- <Icon type='Ionicons' name='md-arrow-back' style={{color:'#fff',fontSize:32}} />
- <Text style={{color:'#fff',fontFamily:'EncodeSansCondensed-Bold',fontSize:25}}>Orders</Text>
- </Button>
- </Left>
- <Right>
- </Right>
- </Header>
- <Content>
- <AccordionList
- list={this.state.orders.slice(0).reverse()}
- header={this._head}
- body={this._body}
- />
- </Content>
- </Container>
- </SafeAreaView>
- )
- }
- }
- const styles = StyleSheet.create({
- header:{
- backgroundColor:'#000',
- height:65,
- paddingBottom:3,
- },
- listHeading:{paddingTop:-10,color:'#222',fontFamily:'EncodeSansCondensed-Medium',fontSize:17,marginBottom:3},
- itemBorder:{borderColor:'#ddd'},
- tabBarDesign : {
- borderColor:"#000",
- borderWidth:.7,
- height:0,
- },
- tabBackground:{
- backgroundColor:'#000',
- }
- })
Add Comment
Please, Sign In to add comment