ldx-widgets
Version:
widgets
111 lines (86 loc) • 2.35 kB
text/coffeescript
React = require 'react'
createClass = require 'create-react-class'
PropTypes = require 'prop-types'
{div, a} = require 'react-dom-factories'
###&
@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: ->
showCountry: yes
mapLink: no
render: ->
{address1, address2, address3, city, state, zip, country, mapLink} = @props
address = []
mapAddress = ''
if address1?
address.push div {
key: 'address1'
}, address1
mapAddress += "#{address1} "
if address2?
address.push div {
key: 'address2'
}, address2
mapAddress += "#{address2} "
if address3?
address.push div {
key: 'address3'
}, address3
mapAddress += "#{address3} "
if city?
address.push div {
key: 'city'
}, city
mapAddress += "#{city}"
if state?
address.push div {
key: 'state'
}, state
if city? then mapAddress += ","
mapAddress += " #{state}"
if zip?
address.push div {
key: 'zip'
}, zip
mapAddress += " #{zip}"
if country?
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