Viewing File: /home/ubuntu/vedadeals-frontend-base/src/components/Profile/SingleAddressCard.jsx
import React, { useEffect, useState } from "react";
import {
fetchDeliveryAddressesListStart,
makeDefaultDeliveryAddressesStart,
deleteDeliveryAddressesStart,
} from "../store/actions/DeliveryAction";
import { Link } from "react-router-dom";
import { Image } from "react-bootstrap";
import { withTranslation, useTranslation } from "react-multi-lang";
import { connect } from "react-redux";
const SingleAddressCard = (props) => {
const { selectedAddress, setSelectedAddress, address, handleEdit } = props;
const [skipRender, setSkipRender] = useState(true);
const t = useTranslation();
const removeAddress = (e) => {
props.dispatch(
deleteDeliveryAddressesStart({
delivery_address_id: address.delivery_address_id,
})
);
e.stopPropagation();
};
const setDefaultAddress = (e) => {
props.dispatch(
makeDefaultDeliveryAddressesStart({
delivery_address_id: address.delivery_address_id,
})
);
e.stopPropagation();
};
useEffect(() => {
if (
!skipRender &&
!props.makeDefaultDeliveryAddresses.loading &&
Object.keys(props.makeDefaultDeliveryAddresses.data).length > 0
) {
props.dispatch(fetchDeliveryAddressesListStart());
}
setSkipRender(false);
}, [props.makeDefaultDeliveryAddresses]);
// useEffect(() => {
// console.log(address)
// }, [])
return (
<div className="address-radio-btn">
<input name="plan" className="radio" type="radio" id="card" checked={selectedAddress === address.delivery_address_id} />
<label name="plan" className="radio" type="radio" for="card" checked={selectedAddress === address.delivery_address_id} onClick={() => setSelectedAddress(address.delivery_address_id)} >
<div className="saved-address-box">
<div className="address-details">
<h4>{address.name}</h4>
<p>{address.address}</p>
<p>{address.state}</p>
<p>{address.pincode}</p>
<p>{address.contact_number}</p>
</div>
<div className="address-btn">
<Link to="" className="address-action-btn">
<span onClick={() => props.editAddress(address)}>
<Image
src={window.location.origin + "/images/edit-black.svg"}
type="image/png"
/></span>
{props.deliveryAddressesDelete.loadingButtonContent &&
props.deliveryAddressesDelete.data.delivery_address_id ===
address.delivery_address_id ? (
props.deliveryAddressesDelete.loadingButtonContent
) : (
<button onClick={removeAddress} className="delete-btn size">
<Image src={window.location.origin + "/images/delete-solid.svg"}
type='image/svg'
/>
</button>
)}
</Link>
{address.is_default == 1 ?
(<span className="address-button text-white">{t("default")}</span>)
: props.makeDefaultDeliveryAddresses.loadingButtonContent &&
props.makeDefaultDeliveryAddresses.data.delivery_address_id === address.delivery_address_id ?
(props.loadingButtonContent) :
(<button to="" className="address-button" onClick={setDefaultAddress}>
{t("use_address")}
</button>)
}
</div>
</div>
</label>
</div>
);
};
const mapStateToPros = (state) => ({
makeDefaultDeliveryAddresses: state.delivery.makeDefaultDeliveryAddresses,
deliveryAddressesDelete: state.delivery.deliveryAddressesDelete,
deliveryAddressesList: state.delivery.deliveryAddressesList
});
function mapDispatchToProps(dispatch) {
return { dispatch };
}
export default connect(
mapStateToPros,
mapDispatchToProps
) (withTranslation(SingleAddressCard));
Back to Directory
File Manager