computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
import queryString from 'query-string'; |
|
import siteConfig from 'storage/site'; |
|
|
|
export const prefixHost = (url) => { |
|
// if it starts with forward slash then prefix site URL |
|
// @todo proper handling of full URLs and trailing slashes |
|
return /^\//.test(url) ? `${siteConfig.url.web}${url}` : url; |
|
}; |
|
|
|
export const getTwitterUrl = (username) => { |
|
return `https://twitter.com/${username}`; |
|
}; |
|
|
|
export const getTwitterShareUrl = ({ text, url }) => { |
|
const urlToShare = `${prefixHost(url)}?${queryString.stringify({ |
|
utm_source: 'roadmap.sh', |
|
utm_campaign: 'share', |
|
utm_medium: 'twitter', |
|
})}`; |
|
|
|
return `https://twitter.com/intent/tweet?text=${text}&url=${encodeURI(urlToShare)}`; |
|
}; |
|
|
|
export const getFacebookShareUrl = ({ text, url }) => { |
|
const urlToShare = `${prefixHost(url)}?${queryString.stringify({ |
|
utm_source: 'roadmap.sh', |
|
utm_campaign: 'share', |
|
utm_medium: 'facebook', |
|
})}`; |
|
|
|
return `https://www.facebook.com/sharer/sharer.php?quote=${text}&u=${encodeURI(urlToShare)}`; |
|
}; |
|
|
|
export const getRedditShareUrl = ({ text, url }) => { |
|
const urlToShare = `${prefixHost(url)}?${queryString.stringify({ |
|
utm_source: 'roadmap.sh', |
|
utm_campaign: 'share', |
|
utm_medium: 'reddit' |
|
})}`; |
|
|
|
return `https://www.reddit.com/submit?title=${text}&url=${encodeURI(urlToShare)}`; |
|
}; |
|
|
|
export const getHnShareUrl = ({ text, url }) => { |
|
const urlToShare = `${prefixHost(url)}?${queryString.stringify({ |
|
utm_source: 'roadmap.sh', |
|
utm_campaign: 'share', |
|
utm_medium: 'hn' |
|
})}`; |
|
|
|
return `https://news.ycombinator.com/submitlink?t=${text}&u=${urlToShare}`; |
|
};
|
|
|