UNPKG

@baken667/share-kit

Version:

A simple share utility kit with native and social media share options

2 lines (1 loc) 1.3 kB
var ShareKit=function(e){"use strict";var t=(e=>(e.WA_LINK_FORMAT="https://wa.me/?text={0}%20{1}",e.TG_LINK_FORMAT="https://t.me/share/url?url={0}&text={1}",e.NOT_SUPPORTED_MESSAGE="This feature is not supported on this browser or operating system.",e))(t||{});const r=(e,t)=>{if(!t)return e;const r=new URL(e);return Object.keys(t).forEach((e=>{t[e]&&r.searchParams.append(e,t[e])})),r.toString()},a=(e,...t)=>e.replace(/{(\d+)}/g,((e,r)=>t[r]||""));return e.appendUtmParams=r,e.formatLink=a,e.share=({url:e=window.location.href,title:n,desc:o,platform:s,utmParams:c})=>{const i=r(e,c),l=encodeURIComponent(i),h=encodeURIComponent(n&&o?`${n} - ${o}`:n||o||"");let p="";switch(s){case"whatsapp":p=a(t.WA_LINK_FORMAT,h,l);break;case"telegram":p=a(t.TG_LINK_FORMAT,l,h);break;case"email":p=`mailto:?subject=${encodeURIComponent(n||"Check this out!")}&body=${encodeURIComponent(`${n?`${n}\n\n`:""}${o?`${o}\n\n`:""}${l}`)}`;break;case"native":return navigator.canShare&&navigator.canShare({url:i})?void navigator.share({title:n,text:`${n||""}${l}${o?` - ${o}`:""}`,url:i}).catch((e=>console.error("Sharing failed",e))):void console.error(t.NOT_SUPPORTED_MESSAGE);default:console.warn(t.NOT_SUPPORTED_MESSAGE)}window.open(p,"_blank")},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),e}({});