Commit b54398f3 authored by Wahyu Adjie Prasetyo's avatar Wahyu Adjie Prasetyo

nambahin pengecekan di delivery dan pickup

parent d5772b63
...@@ -83,6 +83,8 @@ class DeliveryAddrees extends React.Component { ...@@ -83,6 +83,8 @@ class DeliveryAddrees extends React.Component {
}) })
} }
getRate(address_id) { getRate(address_id) {
// console.log('ADdress id : ' + address_id) // console.log('ADdress id : ' + address_id)
...@@ -160,55 +162,58 @@ class DeliveryAddrees extends React.Component { ...@@ -160,55 +162,58 @@ class DeliveryAddrees extends React.Component {
onSave(address, id, name) { onSave(address, id, name) {
if (this.props.value_voucher !== "") {
let setDataAddress = { this.handleVoucherSelect()
address: address, } else {
addressId: id, let setDataAddress = {
home_address: name address: address,
} addressId: id,
home_address: name
this.props.setAddress(setDataAddress);
let params = {
session_id: this.props.session_id,
address_id: id,
}
Axios.post(this.props.BASE_URL + 'crm/v2/delivery/rate', params).then(res => {
let setGrabProps = {
// grabdestination: this.state.grabdestination,
// grabamount: this.state.grabamount,
grabamount: res.data.data.amount
}
let OutletChange = {
outlet_id: res.data.data.outlet_id,
name_outlet: res.data.data.outlet_name,
} }
this.props.setGrab(setGrabProps); this.props.setAddress(setDataAddress);
this.props.setChangeOutletProps(OutletChange);
this.props.setTypePickup(false) let params = {
session_id: this.props.session_id,
if (this.props.route.params.from == 'shoppingCart') { address_id: id,
this.props.navigation.navigate('Shopping Cart', { outlet_change: true, outlet_id: res.data.data.outlet_id })
} else {
this.props.navigation.navigate('Home', {
screen: 'MENU',
params: { user: 'janeT' },
});
} }
Axios.post(this.props.BASE_URL + 'crm/v2/delivery/rate', params).then(res => {
let setGrabProps = {
// grabdestination: this.state.grabdestination,
// grabamount: this.state.grabamount,
grabamount: res.data.data.amount
}
let OutletChange = {
outlet_id: res.data.data.outlet_id,
name_outlet: res.data.data.outlet_name,
}
this.props.setGrab(setGrabProps);
this.props.setChangeOutletProps(OutletChange);
this.props.setTypePickup(false)
if (this.props.route.params.from == 'shoppingCart') {
this.props.navigation.navigate('Shopping Cart', { outlet_change: true, outlet_id: res.data.data.outlet_id })
} else {
this.props.navigation.navigate('Home', {
screen: 'MENU',
params: { user: 'janeT' },
});
}
}).catch(error => {
let response = error.response.data;
console.log('ini error ' + response.msg)
Alert.alert('', response.msg)
})
}
}).catch(error => {
let response = error.response.data;
console.log('ini error ' + response.msg)
Alert.alert('', response.msg)
})
// let recalculateProps = { // let recalculateProps = {
// order_total: 0, // order_total: 0,
// order_quantity:0, // order_quantity:0,
...@@ -226,7 +231,6 @@ class DeliveryAddrees extends React.Component { ...@@ -226,7 +231,6 @@ class DeliveryAddrees extends React.Component {
// { cancelable: false } // { cancelable: false }
// ) // )
} }
deleteAddress(id) { deleteAddress(id) {
...@@ -242,6 +246,64 @@ class DeliveryAddrees extends React.Component { ...@@ -242,6 +246,64 @@ class DeliveryAddrees extends React.Component {
}) })
} }
handleVoucherSelect() {
//SPINNER ON
this.setState({
spinner: true,
})
//CEK TYPE TRANSAKSINYA DELIVERY OR PICKUP, DICEK UNTUK DI MASUKAN DI PARAMATER PEMANGGILAN API
let type_trans = ""
if (this.props.type_pickup == true) {
type_trans = 'Pickup'
} else {
type_trans = 'Delivery'
}
let params = {
session_id: this.props.session_id,
trans_type: type_trans,
order_item: this.props.order_item,
reward_id: this.props.voucher.id,
delivery_charge: this.props.grabamount,
}
// MULAI DISINI PEMANGGILAN API DI MULAI, KALAU BERHASIL SET VALUE VOUCHER NYA DAN SPINER DIMATIKAN, KALAU GAGAL CABUT SESSION VOUCHER DAN SPINNER DI MATIKAN
Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_value', params).then(res => {
if (this.state.state_add_remove_voucher == true) {
this.setState({
state_add_remove_voucher: false
})
this.props.removeVoucher()
} else{
let voucherProps = {
value_voucher: res.data.reward,
voucher: res.data.reward
}
this.props.setVoucher(voucherProps);
}
this.setState({
spinner: false,
})
}).catch(error => {
try {
let response = error.response.data
Alert.alert("", response.msg)
this.setState({
spinner: false,
})
// FUNGSI REDUX UNTUK HAPUS VOUCHER
this.props.removeVoucher()
} catch (error) {
Alert.alert("", error.toString())
}
})
}
handleDeleteAddress(id) { handleDeleteAddress(id) {
Alert.alert( Alert.alert(
"", "",
...@@ -394,8 +456,30 @@ const mapStateToProps = (state) => { ...@@ -394,8 +456,30 @@ const mapStateToProps = (state) => {
session_id: state.session_id, session_id: state.session_id,
addressId: state.addressId, addressId: state.addressId,
language: state.language, language: state.language,
outlet_detailadress: state.outlet_detailadress,
home_address: state.home_address,
type_pickup: state.type_pickup,
value_voucher: state.value_voucher,
voucher: state.voucher,
session_id: state.session_id,
outlet_id: state.outlet_id,
name_outlet: state.name_outlet,
value_voucher: state.value_voucher,
voucher: state.voucher,
order_quantity: state.order_quantity,
order_total: state.order_total,
order_item: state.order_item,
quantity: state.quantity,
address: state.address,
addressId: state.addressId,
grabtype: state.grabtype,
grabamount: state.grabamount,
grabpickup: state.grabpickup,
grabdropoff: state.grabdropoff,
grabdestination: state.grabdestination,
BASE_URL: state.BASE_URL BASE_URL: state.BASE_URL
} }
} }
...@@ -445,6 +529,9 @@ const mapDispatchToProps = (dispacth) => { ...@@ -445,6 +529,9 @@ const mapDispatchToProps = (dispacth) => {
type_pickup: type type_pickup: type
} }
}), }),
removeVoucher: () => dispacth({
type: ActionType.REMOVE_VOUCHER
}),
} }
} }
......
This diff is collapsed.
...@@ -273,7 +273,6 @@ class MenuSelection extends React.Component { ...@@ -273,7 +273,6 @@ class MenuSelection extends React.Component {
Alert.alert("", error.toString()) Alert.alert("", error.toString())
} }
}) })
} }
renderTabBar = ({ item }) => { renderTabBar = ({ item }) => {
......
...@@ -39,6 +39,64 @@ class PickupName extends React.Component { ...@@ -39,6 +39,64 @@ class PickupName extends React.Component {
} }
handleVoucherSelect() {
//SPINNER ON
this.setState({
spinner: true,
})
//CEK TYPE TRANSAKSINYA DELIVERY OR PICKUP, DICEK UNTUK DI MASUKAN DI PARAMATER PEMANGGILAN API
let type_trans = ""
if (this.props.type_pickup == true) {
type_trans = 'Pickup'
} else {
type_trans = 'Delivery'
}
let params = {
session_id: this.props.session_id,
trans_type: type_trans,
order_item: this.props.order_item,
reward_id: this.props.voucher.id,
delivery_charge: this.props.grabamount,
}
// MULAI DISINI PEMANGGILAN API DI MULAI, KALAU BERHASIL SET VALUE VOUCHER NYA DAN SPINER DIMATIKAN, KALAU GAGAL CABUT SESSION VOUCHER DAN SPINNER DI MATIKAN
Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_value', params).then(res => {
if (this.state.state_add_remove_voucher == true) {
this.setState({
state_add_remove_voucher: false
})
this.props.removeVoucher()
} else{
let voucherProps = {
value_voucher: res.data.reward,
voucher: res.data.reward
}
this.props.setVoucher(voucherProps);
}
this.setState({
spinner: false,
})
}).catch(error => {
try {
let response = error.response.data
Alert.alert("", response.msg)
this.setState({
spinner: false,
})
// FUNGSI REDUX UNTUK HAPUS VOUCHER
this.props.removeVoucher()
} catch (error) {
Alert.alert("", error.toString())
}
})
}
_getPermissions = async () => { _getPermissions = async () => {
let { status } = await Permissions.askAsync(Permissions.LOCATION); let { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status !== 'granted') { if (status !== 'granted') {
...@@ -70,30 +128,36 @@ class PickupName extends React.Component { ...@@ -70,30 +128,36 @@ class PickupName extends React.Component {
getOutletDetail(id, name, address) { getOutletDetail(id, name, address) {
let OutletChange = { if (this.props.value_voucher !== "") {
outlet_id: id, this.handleVoucherSelect()
name_outlet: name,
outlet_detailadress: address }else{
} let OutletChange = {
outlet_id: id,
// let recalculateProps = { name_outlet: name,
// order_total: 0, outlet_detailadress: address
// order_quantity:0, }
// order_item:[]
// } // let recalculateProps = {
// this.props.setRecalculate(recalculateProps) // order_total: 0,
this.props.setChangeOutletProps(OutletChange); // order_quantity:0,
this.props.setTypePickup(true); // order_item:[]
// }
if (this.props.route.params.from == 'shoppingCart') { // this.props.setRecalculate(recalculateProps)
this.props.navigation.navigate('Shopping Cart', { outlet_change: true, outlet_id: id }) this.props.setChangeOutletProps(OutletChange);
} else { this.props.setTypePickup(true);
this.props.navigation.navigate('Home', { if (this.props.route.params.from == 'shoppingCart') {
screen: 'MENU', this.props.navigation.navigate('Shopping Cart', { outlet_change: true, outlet_id: id })
params: { user: 'jane' }, } else {
})
this.props.navigation.navigate('Home', {
screen: 'MENU',
params: { user: 'jane' },
})
}
} }
} }
getOutlet() { getOutlet() {
...@@ -192,11 +256,13 @@ class PickupName extends React.Component { ...@@ -192,11 +256,13 @@ class PickupName extends React.Component {
} }
select(item) { select(item) {
let OutletChange = {
outlet_id: item.id, let OutletChange = {
name_outlet: item.name, outlet_id: item.id,
} name_outlet: item.name,
this.props.setChangeOutletProps(OutletChange) }
this.props.setChangeOutletProps(OutletChange)
this.props.navigation.navigate('Home', { screen: 'MENU' }); this.props.navigation.navigate('Home', { screen: 'MENU' });
} }
...@@ -391,6 +457,9 @@ const mapDispatchToProps = (dispacth) => { ...@@ -391,6 +457,9 @@ const mapDispatchToProps = (dispacth) => {
} }
}), }),
removeVoucher: () => dispacth({
type: ActionType.REMOVE_VOUCHER
}),
} }
} }
...@@ -402,7 +471,30 @@ const mapStateToProps = (state) => { ...@@ -402,7 +471,30 @@ const mapStateToProps = (state) => {
name_outlet: state.name_outlet, name_outlet: state.name_outlet,
outlet_detailadress: state.outlet_detailadress, outlet_detailadress: state.outlet_detailadress,
language: state.language, language: state.language,
BASE_URL: state.BASE_URL value_voucher: state.value_voucher,
voucher: state.voucher,
outlet_detailadress: state.outlet_detailadress,
home_address: state.home_address,
type_pickup: state.type_pickup,
value_voucher: state.value_voucher,
voucher: state.voucher,
session_id: state.session_id,
outlet_id: state.outlet_id,
name_outlet: state.name_outlet,
value_voucher: state.value_voucher,
voucher: state.voucher,
order_quantity: state.order_quantity,
order_total: state.order_total,
order_item: state.order_item,
quantity: state.quantity,
address: state.address,
addressId: state.addressId,
grabtype: state.grabtype,
grabamount: state.grabamount,
grabpickup: state.grabpickup,
grabdropoff: state.grabdropoff,
grabdestination: state.grabdestination,
BASE_URL: state.BASE_URL,
} }
} }
......
...@@ -9,6 +9,7 @@ import requestParams from '../helper/requestParams'; ...@@ -9,6 +9,7 @@ import requestParams from '../helper/requestParams';
import ActionType from '../redux/globalActionType'; import ActionType from '../redux/globalActionType';
import MyStatusBar from './MyStatusBar'; import MyStatusBar from './MyStatusBar';
import i18n from 'i18n-js'; import i18n from 'i18n-js';
import Spinner from 'react-native-loading-spinner-overlay';
class RewardDetail extends React.Component { class RewardDetail extends React.Component {
constructor(props) { constructor(props) {
...@@ -25,6 +26,7 @@ class RewardDetail extends React.Component { ...@@ -25,6 +26,7 @@ class RewardDetail extends React.Component {
value: '', value: '',
cur_time: '', cur_time: '',
exp_time: '', exp_time: '',
spinner: false
} }
} }
...@@ -33,14 +35,14 @@ class RewardDetail extends React.Component { ...@@ -33,14 +35,14 @@ class RewardDetail extends React.Component {
} }
detailReward() { detailReward() {
let params = Object.assign(requestParams,{ let params = Object.assign(requestParams, {
session_id: this.props.session_id, session_id: this.props.session_id,
reward_id: this.props.route.params.rewardId reward_id: this.props.route.params.rewardId
}) })
Axios.post(this.props.BASE_URL+'crm/v2/reward/get_detail', params).then(res => { Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_detail', params).then(res => {
let exp_time = new Date(res.data.reward.expire_time) let exp_time = new Date(res.data.reward.expire_time)
let cur_time = new Date() let cur_time = new Date()
let expire_date = moment(res.data.reward.expire_time).format('DD MMMM YYYY') let expire_date = moment(res.data.reward.expire_time).format('DD MMMM YYYY')
this.setState({ this.setState({
...@@ -66,14 +68,62 @@ class RewardDetail extends React.Component { ...@@ -66,14 +68,62 @@ class RewardDetail extends React.Component {
} }
useVoucher() { handleVoucherSelect() {
let voucherProps = { //SPINNER ON
value_voucher: this.state.value, this.setState({
voucher: this.state.value spinner: true,
})
//CEK TYPE TRANSAKSINYA DELIVERY OR PICKUP, DICEK UNTUK DI MASUKAN DI PARAMATER PEMANGGILAN API
let type_trans = ""
if (this.props.type_pickup == true) {
type_trans = 'Pickup'
} else {
type_trans = 'Delivery'
}
let params = {
session_id: this.props.session_id,
trans_type: type_trans,
order_item: this.props.order_item,
reward_id: this.props.route.params.rewardId,
delivery_charge: this.props.grabamount,
} }
// MULAI DISINI PEMANGGILAN API DI MULAI, KALAU BERHASIL SET VALUE VOUCHER NYA DAN SPINER DIMATIKAN, KALAU GAGAL CABUT SESSION VOUCHER DAN SPINNER DI MATIKAN
Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_value', params).then(res => {
let voucherProps = {
value_voucher: res.data.reward,
voucher: res.data.reward
}
this.props.setVoucher(voucherProps);
this.setState({
spinner: false,
})
this.props.navigation.navigate('Home', { screen: 'MENU' })
this.props.setVoucher(voucherProps); }).catch(error => {
this.props.navigation.navigate('Home', { screen: 'MENU' }) try {
let response = error.response.data;
Alert.alert(
'',
response.msg,
[
{ text: "OK", onPress: () => this.setState({spinner: false}) }
],
);
// FUNGSI REDUX UNTUK HAPUS VOUCHER
this.props.removeVoucher()
} catch (error) {
Alert.alert("", error.toString())
}
})
}
useVoucher() {
this.handleVoucherSelect()
} }
...@@ -86,6 +136,7 @@ class RewardDetail extends React.Component { ...@@ -86,6 +136,7 @@ class RewardDetail extends React.Component {
console.log(this.state.content) console.log(this.state.content)
return ( return (
<View style={styles.container}> <View style={styles.container}>
<Spinner visible={this.state.spinner} textContent={'Loading...'} textStyle={{ color: "white" }} />
<MyStatusBar /> <MyStatusBar />
<ScrollView> <ScrollView>
<View style={styles.images}> <View style={styles.images}>
...@@ -125,9 +176,9 @@ class RewardDetail extends React.Component { ...@@ -125,9 +176,9 @@ class RewardDetail extends React.Component {
<View style={styles.content}> <View style={styles.content}>
{this.state.cur_time > this.state.exp_time ? ( {this.state.cur_time > this.state.exp_time ? (
<View style={{ flex: 1, height: 50, marginRight: 70, marginLeft: 70, justifyContent: 'center' }}> <View style={{ flex: 1, height: 50, marginRight: 70, marginLeft: 70, justifyContent: 'center' }}>
<View style={{ height: 40, borderRadius: 10, backgroundColor: 'red' }}> <View style={{ height: 40, borderRadius: 10, backgroundColor: 'red' }}>
<Text style={{ fontFamily: 'Gotham-Black', color: 'white', fontSize: 16, textAlign: 'center', margin: 11 }}>{i18n.t('expiredLabel')}</Text> <Text style={{ fontFamily: 'Gotham-Black', color: 'white', fontSize: 16, textAlign: 'center', margin: 11 }}>{i18n.t('expiredLabel')}</Text>
</View> </View>
</View> </View>
) )
: this.state.used == 0 ? ( : this.state.used == 0 ? (
...@@ -250,6 +301,9 @@ const mapDispatchToProps = (dispacth) => { ...@@ -250,6 +301,9 @@ const mapDispatchToProps = (dispacth) => {
} }
}), }),
removeVoucher: () => dispacth({
type: ActionType.REMOVE_VOUCHER
}),
} }
} }
...@@ -260,6 +314,27 @@ const mapStateToProps = (state) => { ...@@ -260,6 +314,27 @@ const mapStateToProps = (state) => {
lat: state.lat, lat: state.lat,
long: state.long, long: state.long,
BASE_URL: state.BASE_URL, BASE_URL: state.BASE_URL,
outlet_detailadress: state.outlet_detailadress,
home_address: state.home_address,
type_pickup: state.type_pickup,
value_voucher: state.value_voucher,
voucher: state.voucher,
session_id: state.session_id,
outlet_id: state.outlet_id,
name_outlet: state.name_outlet,
value_voucher: state.value_voucher,
voucher: state.voucher,
order_quantity: state.order_quantity,
order_total: state.order_total,
order_item: state.order_item,
quantity: state.quantity,
address: state.address,
addressId: state.addressId,
grabtype: state.grabtype,
grabamount: state.grabamount,
grabpickup: state.grabpickup,
grabdropoff: state.grabdropoff,
grabdestination: state.grabdestination,
} }
} }
......
...@@ -18,7 +18,9 @@ class RewardSelect extends React.Component { ...@@ -18,7 +18,9 @@ class RewardSelect extends React.Component {
} }
componentDidMount() { componentDidMount() {
// console.log("INI URL NYA :"+this.props.BASE_URL);
console.log(" DATA PROPS : "+this.props.type_pickup);
this.getRewardsList() this.getRewardsList()
this._unsubscribe = this.props.navigation.addListener('focus', () => { this._unsubscribe = this.props.navigation.addListener('focus', () => {
this.getRewardsList() this.getRewardsList()
...@@ -35,13 +37,12 @@ class RewardSelect extends React.Component { ...@@ -35,13 +37,12 @@ class RewardSelect extends React.Component {
// value_voucher: this.state.value, // value_voucher: this.state.value,
// voucher: this.state.code // voucher: this.state.code
// } // }
// this.props.setVoucher(voucherProps); // this.props.setVoucher(voucherProps);
// this.props.navigation.navigate('Home', { screen: 'MENU' }) // this.props.navigation.navigate('Home', { screen: 'MENU' })
// } // }
handleSelect(item) { handleSelect(item) {
let type_trans = "" let type_trans = ""
if (this.props.type_pickup == true) { if (this.props.type_pickup == true) {
type_trans = 'Pickup' type_trans = 'Pickup'
...@@ -56,7 +57,7 @@ class RewardSelect extends React.Component { ...@@ -56,7 +57,7 @@ class RewardSelect extends React.Component {
reward_id: item.id, reward_id: item.id,
delivery_charge: this.props.grabamount, delivery_charge: this.props.grabamount,
} }
console.log(params) // console.log(params)
Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_value', params).then(res => { Axios.post(this.props.BASE_URL + 'crm/v2/reward/get_value', params).then(res => {
// console.log(res.data.reward) // console.log(res.data.reward)
let detail = res.data.reward let detail = res.data.reward
......
...@@ -88,15 +88,12 @@ class ShoppingCart extends React.Component { ...@@ -88,15 +88,12 @@ class ShoppingCart extends React.Component {
} }
checkChangeTrans(val) { checkChangeTrans(val) {
if (val == 'delivery') { if (val == 'delivery') {
// let typeProps = { // let typeProps = {
// type_pickup: false, // type_pickup: false,
// } // }
// this.props.setTypePickup(typeProps); // this.props.setTypePickup(typeProps);
if (this.props.value_voucher !== "") {
this.handleVoucherSelect()
}
this.setState({ this.setState({
checkedBalance: false, checkedBalance: false,
checkedPoint: false, checkedPoint: false,
...@@ -105,15 +102,20 @@ class ShoppingCart extends React.Component { ...@@ -105,15 +102,20 @@ class ShoppingCart extends React.Component {
balanceused: 0 balanceused: 0
}) })
let typeProps = {
type_pickup: false,
}
this.props.setTypePickup(typeProps);
this.props.navigation.navigate("Delivery Address", { from: 'shoppingCart' }) this.props.navigation.navigate("Delivery Address", { from: 'shoppingCart' })
} else { } else {
// let typeProps = {
// type_pickup: true, let typeProps = {
// } type_pickup: true,
// this.props.setTypePickup(typeProps);
if (this.props.value_voucher !== "") {
this.handleVoucherSelect()
} }
this.props.setTypePickup(typeProps);
this.setState({ this.setState({
checkedBalance: false, checkedBalance: false,
checkedPoint: false, checkedPoint: false,
...@@ -122,6 +124,7 @@ class ShoppingCart extends React.Component { ...@@ -122,6 +124,7 @@ class ShoppingCart extends React.Component {
balanceused: 0 balanceused: 0
}) })
this.props.navigation.navigate('Pickup Name', { from: 'shoppingCart' }) this.props.navigation.navigate('Pickup Name', { from: 'shoppingCart' })
} }
} }
...@@ -158,13 +161,18 @@ class ShoppingCart extends React.Component { ...@@ -158,13 +161,18 @@ class ShoppingCart extends React.Component {
state_add_remove_voucher: false state_add_remove_voucher: false
}) })
this.props.removeVoucher() this.props.removeVoucher()
this.setState({
spinner: false,
})
} else{ } else{
let voucherProps = { let voucherProps = {
value_voucher: res.data.reward, value_voucher: res.data.reward,
voucher: res.data.reward voucher: res.data.reward
} }
this.props.setVoucher(voucherProps); this.props.setVoucher(voucherProps);
this.setState({
spinner: false,
})
} }
this.setState({ this.setState({
...@@ -174,10 +182,11 @@ class ShoppingCart extends React.Component { ...@@ -174,10 +182,11 @@ class ShoppingCart extends React.Component {
}).catch(error => { }).catch(error => {
try { try {
let response = error.response.data let response = error.response.data
Alert.alert("", response.msg) console.log("RESPONSE : "+ response)
this.setState({ // Alert.alert("", response.msg)
spinner: false, // this.setState({
}) // spinner: false,
// })
// FUNGSI REDUX UNTUK HAPUS VOUCHER // FUNGSI REDUX UNTUK HAPUS VOUCHER
this.props.removeVoucher() this.props.removeVoucher()
} catch (error) { } catch (error) {
...@@ -187,7 +196,6 @@ class ShoppingCart extends React.Component { ...@@ -187,7 +196,6 @@ class ShoppingCart extends React.Component {
} }
handleRemoveVoucher() { handleRemoveVoucher() {
//panggil spiner //panggil spiner
if (this.props.value_voucher !== "") { if (this.props.value_voucher !== "") {
...@@ -204,9 +212,7 @@ class ShoppingCart extends React.Component { ...@@ -204,9 +212,7 @@ class ShoppingCart extends React.Component {
balanceused: 0, balanceused: 0,
state_add_remove_voucher: true state_add_remove_voucher: true
}) })
// this.props.removeVoucher() // this.props.removeVoucher()
} }
handleAddVoucher() { handleAddVoucher() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment