{"version":3,"file":"EmailProviderLink.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/EmailProviderLink.tsx"],"sourcesContent":["import { MessageDescriptor } from '@lingui/core';\nimport { msg } from '@lingui/core/macro';\nimport { useLingui } from '@lingui/react/macro';\nimport React from 'react';\n\nimport type { emailIcons } from '../../b2c/components/Icons';\nimport { ButtonAnchor } from '../atoms/Button';\nimport { usePresentation } from '../PresentationConfig';\n\ntype EmailProvider = 'gmail' | 'yahoo' | 'outlook';\n\nexport interface EmailProviderInfo {\n  messageDescriptor: MessageDescriptor;\n  icon: keyof typeof emailIcons;\n  getUrl: (emailDomain: string | null) => string;\n}\n\nexport const emailProviderInfo = {\n  gmail: {\n    messageDescriptor: msg({ id: 'link.openInGmail', message: 'Open in Gmail' }),\n    icon: 'gmail',\n    getUrl: (emailDomain: string | null) => {\n      const gmailQuery = encodeURIComponent(emailDomain ? `from:@${emailDomain} in:anywhere` : 'in:anywhere');\n      return `https://mail.google.com/mail/u/0/#search/${gmailQuery}`;\n    },\n  },\n  yahoo: {\n    messageDescriptor: msg({ id: 'link.openInYahoo', message: 'Open in Yahoo' }),\n    icon: 'yahoo',\n    getUrl: (emailDomain: string | null) => {\n      return !emailDomain\n        ? 'https://mail.yahoo.com/d/search/referrer=unread'\n        : `https://mail.yahoo.com/d/search/keyword=${emailDomain}`;\n    },\n  },\n  outlook: {\n    messageDescriptor: msg({ id: 'link.openInOutlook', message: 'Open in Outlook' }),\n    icon: 'outlook',\n    getUrl: () => `https://outlook.office.com/mail/0/inbox`,\n  },\n} satisfies Record<EmailProvider, EmailProviderInfo>;\n\ntype EmailProviderProps = {\n  providerInfo: EmailProviderInfo;\n  emailDomain: string | null;\n};\n\nexport const EmailProviderLink = ({\n  providerInfo: { icon, messageDescriptor, getUrl },\n  emailDomain,\n}: EmailProviderProps) => {\n  const { t } = useLingui();\n  const href = getUrl(emailDomain);\n  const { iconRegistry } = usePresentation();\n\n  const Icon = iconRegistry[icon];\n\n  return (\n    <ButtonAnchor variant=\"outline\" href={href} target=\"_blank\" rel=\"noopener noreferrer\" icon={<Icon />}>\n      {t(messageDescriptor)}\n    </ButtonAnchor>\n  );\n};\n"],"names":["emailProviderInfo","gmail","messageDescriptor","icon","getUrl","emailDomain","gmailQuery","encodeURIComponent","yahoo","outlook","EmailProviderLink","providerInfo","useLingui","href","iconRegistry","usePresentation","Icon","React","ButtonAnchor","variant","target","rel"],"mappings":";;;;;MAiBaA,iBAAAA,GAAoB;IAC/BC,KAAAA,EAAO;QACLC,iBAAiB,EAAA;;;;QACjBC,IAAAA,EAAM,OAAA;AACNC,QAAAA,MAAAA,EAAQ,CAACC,WAAAA,GAAAA;YACP,MAAMC,UAAAA,GAAaC,mBAAmBF,WAAAA,GAAc,CAAC,MAAM,EAAEA,WAAAA,CAAY,YAAY,CAAC,GAAG,aAAA,CAAA;YACzF,OAAO,CAAC,yCAAyC,EAAEC,UAAAA,CAAAA,CAAY;AACjE,QAAA;AACF,KAAA;IACAE,KAAAA,EAAO;QACLN,iBAAiB,EAAA;;;;QACjBC,IAAAA,EAAM,OAAA;AACNC,QAAAA,MAAAA,EAAQ,CAACC,WAAAA,GAAAA;AACP,YAAA,OAAO,CAACA,WAAAA,GACJ,iDAAA,GACA,CAAC,wCAAwC,EAAEA,WAAAA,CAAAA,CAAa;AAC9D,QAAA;AACF,KAAA;IACAI,OAAAA,EAAS;QACPP,iBAAiB,EAAA;;;;QACjBC,IAAAA,EAAM,SAAA;QACNC,MAAAA,EAAQ,IAAM,CAAC,uCAAuC;AACxD;AACF;AAOO,MAAMM,iBAAAA,GAAoB,CAAC,EAChCC,cAAc,EAAER,IAAI,EAAED,iBAAiB,EAAEE,MAAM,EAAE,EACjDC,WAAW,EACQ,GAAA;AACnB,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQO,SAAAA,EAAAA;AACd,IAAA,MAAMC,OAAOT,MAAAA,CAAOC,WAAAA,CAAAA;IACpB,MAAM,EAAES,YAAY,EAAE,GAAGC,eAAAA,EAAAA;IAEzB,MAAMC,IAAAA,GAAOF,YAAY,CAACX,IAAAA,CAAK;AAE/B,IAAA,qBACEc,EAAA,CAAA,aAAA,CAACC,YAAAA,EAAAA;QAAaC,OAAAA,EAAQ,SAAA;QAAUN,IAAAA,EAAMA,IAAAA;QAAMO,MAAAA,EAAO,QAAA;QAASC,GAAAA,EAAI,qBAAA;AAAsBlB,QAAAA,IAAAA,gBAAMc,EAAA,CAAA,aAAA,CAACD,IAAAA,EAAAA,IAAAA;AACxFd,KAAAA,EAAAA,OAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAAA,CAAAA;AAGT;;;;"}