ldx-widgets
Version:
widgets
126 lines (109 loc) • 3.16 kB
JavaScript
(function() {
var AddressUK, PropTypes, React, a, createClass, div, ref;
React = require('react');
createClass = require('create-react-class');
PropTypes = require('prop-types');
ref = require('react-dom-factories'), div = ref.div, a = ref.a;
/*&
@props.address1 - [String] - Optional
First part of the address
@props.address2 - [String] - Optional
Second part of the address
@props.address3 - [String] - Optional
Third part of the address
@props.city - [String] - Optional
City or town
@props.state - [String] - Optional
State or province
@props.zip - [String] - Optional
ZIP/postal code
@props.country - [String] - Optional
country
@props.mapLink - [Boolean] - Optional
Build a link to google maps and display address as a clickable link.
Link opens a new tab/window
&
*/
AddressUK = createClass({
displayName: 'AddressUK',
propsTypes: {
address1: PropTypes.string,
address2: PropTypes.string,
address3: PropTypes.string,
city: PropTypes.string,
state: PropTypes.string,
zip: PropTypes.string,
country: PropTypes.string,
mapLink: PropTypes.string
},
getDefaultProps: function() {
return {
showCountry: true,
mapLink: false
};
},
render: function() {
var address, address1, address2, address3, city, country, mapAddress, mapLink, ref1, state, zip;
ref1 = this.props, address1 = ref1.address1, address2 = ref1.address2, address3 = ref1.address3, city = ref1.city, state = ref1.state, zip = ref1.zip, country = ref1.country, mapLink = ref1.mapLink;
address = [];
mapAddress = '';
if (address1 != null) {
address.push(div({
key: 'address1'
}, address1));
mapAddress += address1 + " ";
}
if (address2 != null) {
address.push(div({
key: 'address2'
}, address2));
mapAddress += address2 + " ";
}
if (address3 != null) {
address.push(div({
key: 'address3'
}, address3));
mapAddress += address3 + " ";
}
if (city != null) {
address.push(div({
key: 'city'
}, city));
mapAddress += "" + city;
}
if (state != null) {
address.push(div({
key: 'state'
}, state));
if (city != null) {
mapAddress += ",";
}
mapAddress += " " + state;
}
if (zip != null) {
address.push(div({
key: 'zip'
}, zip));
mapAddress += " " + zip;
}
if (country != null) {
address.push(div({
key: 'country'
}, country));
mapAddress += " " + country;
}
if (mapLink) {
return a({
className: 'address block',
target: '_blank',
href: "https://www.google.com/maps/place/" + mapAddress
}, address);
} else {
return div({
className: 'address-display'
}, address);
}
}
});
module.exports = AddressUK;
}).call(this);