2
2
import { computed } from ' vue'
3
3
4
4
import AudioIcon from ' ../assets/icons/AudioIcon.vue'
5
- // eslint-disable-next-line import/no-duplicates
6
5
import EmailIcon from ' ../assets/icons/EmailIcon.vue'
7
6
import FacebookIcon from ' ../assets/icons/FacebookIcon.vue'
8
7
import InstagramIcon from ' ../assets/icons/InstagramIcon.vue'
9
8
import LinkedinIcon from ' ../assets/icons/LinkedinIcon.vue'
10
- // eslint-disable-next-line import/no-duplicates
11
- import NewsletterIcon from ' ../assets/icons/EmailIcon.vue'
12
9
import PhoneIcon from ' ../assets/icons/PhoneIcon.vue'
13
10
import RedditIcon from ' ../assets/icons/RedditIcon.vue'
14
11
import SiteIcon from ' ../assets/icons/SiteIcon.vue'
@@ -77,7 +74,7 @@ const icons = {
77
74
homepage: LinkIcon,
78
75
}
79
76
80
- const URL_PLACEHOLDER_PATTERN = new RegExp ( ' %URL%' , ' g ' )
77
+ const URL_PLACEHOLDER_PATTERN = / %URL%/ g
81
78
const SOCIAL_SERVICE_MAP = {
82
79
spotify: {
83
80
profileBase: ' https://open.spotify.com/playlist/' ,
@@ -140,20 +137,16 @@ const shareBase = computed(() => {
140
137
})
141
138
const shareUrl = computed (() => {
142
139
const utmParams = Object .entries (props .utmParameters ).map (([key , value ]) => {
143
- return ' utm_' + key + ' = ' + encodeURIComponent (value)
140
+ return ` utm_${ key} = ${ encodeURIComponent (value)} `
144
141
})
145
142
let url = props .url
146
143
if (utmParams .length > 0 ) {
147
- url = url + ' ? ' + utmParams .join (' &' )
144
+ url = ` ${ url} ? ${ utmParams .join (' &' )} `
148
145
}
149
146
150
147
const shareParams = Object .entries (props .shareParameters ).map (
151
148
([key , value ]) => {
152
- return (
153
- key +
154
- ' =' +
155
- encodeURIComponent (value .replace (URL_PLACEHOLDER_PATTERN , url))
156
- )
149
+ return ` ${ key} =${ encodeURIComponent (value .replace (URL_PLACEHOLDER_PATTERN , url))} `
157
150
}
158
151
)
159
152
@@ -162,23 +155,24 @@ const shareUrl = computed(() => {
162
155
const shouldOmitUrl = SOCIAL_SERVICE_MAP [props .service ]? .omitUrl
163
156
if (! shouldOmitUrl) {
164
157
const urlKey = SOCIAL_SERVICE_MAP [props .service ]? .urlKey || ' url'
165
- const urlParam = urlKey + ' = ' + encodeURIComponent (url)
158
+ const urlParam = ` ${ urlKey} = ${ encodeURIComponent (url)} `
166
159
params = [urlParam, ... params]
167
160
}
168
161
169
- return shareBase .value + ' ? ' + params .join (' &' )
162
+ return ` ${ shareBase .value } ? ${ params .join (' &' )} `
170
163
})
171
164
const ariaLabel = computed (() => {
172
165
if (props .label ) {
173
166
return props .label
174
167
} else if (props .action === ' follow' ) {
175
- return ' Follow us on ' + props .service
168
+ return ` Follow us on ${ props .service } `
176
169
} else if (props .action === ' share' ) {
177
- return ' Share on ' + props .service
170
+ return ` Share on ${ props .service } `
178
171
}
179
172
return ' '
180
173
})
181
174
175
+ // create share popup
182
176
const share = () => {
183
177
if (! props .service ) {
184
178
return
@@ -200,7 +194,7 @@ const share = () => {
200
194
const left = windowWidth / 2 - 600 / 2 + screenLeft
201
195
const top = windowheight / 2 - 600 / 2 + screenTop
202
196
203
- return { left: left, top : top }
197
+ return { left, top }
204
198
}
205
199
206
200
// get the position of the window
0 commit comments