{"version":3,"file":"OutlookIntegrationBanner.mjs","names":["React","useEffect","useMemo","useState","useLocation","useTranslation","AmbientAlert","SubHeaderAction","getOutlookStatus","subscribeOutlookStatus","ensureOutlookStatusLoaded","OutlookIntegrationBanner","t0","$","_c","onConfigure","enabled","t1","hideOnPaths","t2","title","message","actionLabel","dismissible","t3","renderInSubHeaderAction","t4","undefined","t","location","status","setStatus","_temp","show","setShow","pathname","shouldHideForPath","some","path","includes","t5","t6","Symbol","for","unsub","next","connected","catch","_temp2","loaded","t7","defaultValue","t8","error","t9","t10","t11","t12","t13","alert","t14"],"sources":["../../../src/integrations/outlook/OutlookIntegrationBanner.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../../UI/feedback/AmbientAlert';\nimport { SubHeaderAction } from '../../utilities/utilityBar/SubHeaderAction';\nimport {\n  getOutlookStatus,\n  subscribeOutlookStatus,\n  ensureOutlookStatusLoaded,\n} from './outlookIntegrationStatus';\n\n/**\n * Global warning banner shown when Outlook integration is disconnected.\n * Defaults to enabled so apps get the disconnected warning behavior out of the box.\n */\nexport const OutlookIntegrationBanner = ({\n  onConfigure,\n  enabled = true,\n  hideOnPaths = [],\n  title,\n  message,\n  actionLabel,\n  dismissible = true,\n  renderInSubHeaderAction = false,\n}) => {\n  const { t } = useTranslation();\n  const location = useLocation();\n\n  const [status, setStatus] = useState(() => getOutlookStatus());\n  const [show, setShow] = useState(true);\n\n  const shouldHideForPath = useMemo(() => {\n    const pathname = location?.pathname || '';\n    return hideOnPaths.some(path => path && pathname.includes(path));\n  }, [hideOnPaths, location?.pathname]);\n\n  useEffect(() => {\n    const unsub = subscribeOutlookStatus(next => {\n      setStatus(next);\n      // Restore banner when status updates and integration is disconnected.\n      if (next.connected) {\n        setShow(false);\n      } else {\n        setShow(true);\n      }\n    });\n\n    ensureOutlookStatusLoaded().catch(() => {});\n    return () => unsub();\n  }, []);\n\n  if (!enabled || shouldHideForPath || !show || !status.loaded || status.connected) {\n    return null;\n  }\n\n  const alert = (\n    <AmbientAlert\n      alertTitle={\n        title ||\n        t('outlook.banner.title', {\n          defaultValue: 'Outlook Integration Required'\n        })\n      }\n      alertMessage={\n        status.error ||\n        message ||\n        t('outlook.banner.message', {\n          defaultValue: 'Setup Outlook integration to enable email functionality.'\n        })\n      }\n      showAlert={true}\n      alertSeverity={status.error ? 'error' : 'warning'}\n      alertAction={typeof onConfigure === 'function'}\n      alertActionButton={\n        actionLabel ||\n        t('outlook.banner.action', {\n          defaultValue: 'Setup Outlook integration'\n        })\n      }\n      alertHandleAction={onConfigure}\n      closeAlert={dismissible ? () => setShow(false) : undefined}\n    />\n  );\n\n  if (renderInSubHeaderAction) {\n    return <SubHeaderAction>{alert}</SubHeaderAction>;\n  }\n\n  return alert;\n};\n\nexport default OutlookIntegrationBanner;\n"],"mappings":"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"}