-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLocation.js
84 lines (73 loc) · 1.81 KB
/
Location.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import React, { Component } from 'react'
import _ from 'lodash'
import {
MJMLColumnElement,
elements,
registerElement,
} from '../mjml/lib'
const {
text: MjText,
image: MjImage
} = elements;
const NAME = 'location'
@MJMLColumnElement({
tagName: 'mj-location',
content: ' ',
attributes: {
'color': '#3aa7ed',
'font-family': 'Roboto, sans-serif',
'font-size': '18px',
'font-weight': 500,
'padding': '10px 25px'
}
})
class Location extends Component {
getStyles() {
const { mjAttribute } = this.props
return _.merge({}, this.constructor.baseStyles, {
text: {
color: mjAttribute('color'),
textDecoration: 'none'
}
})
}
getAttributes() {
const { mjAttribute } = this.props
return {
text: {
'font-family': mjAttribute('font-family'),
'font-size': mjAttribute('font-size'),
'font-weight': mjAttribute('font-weight'),
'text-decoration': mjAttribute('text-decoration'),
'padding': 0
},
img: {
'padding': 0
}
}
}
render() {
const styles = this.getStyles()
const attrs = this.getAttributes()
const { mjAttribute } = this.props
const address = `http://maps.google.com/maps?q=${encodeURIComponent(mjAttribute('address'))}`
const text = mjAttribute('text') || mjAttribute('address')
return (
<table width="100%">
<tbody>
<MjImage
{...attrs.img}
src="http://i.imgur.com/DPCJHhy.png"
href={address} />
<MjText
{...attrs.text}
align="center">
<a style={styles.text} href={address} target="_blank">{text}</a>
</MjText>
</tbody>
</table>
)
}
}
registerElement('location', Location, { endingTags: true })
export default Location