{"version":3,"file":"useEmailDomain.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/useEmailDomain.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { readB2BInternals } from '../../../utils/internal';\nimport { useConfig, useStytch } from '../GlobalContextProvider';\n\n/**\n * Resolves the best email domain to use as a hint for login\n */\nexport const useEmailDomain = () => {\n  const stytch = useStytch();\n  const config = useConfig();\n  /**\n   * Read the emailDomains out of sync storage, then read out of async storage\n   * TODO - Should all bootstrap data live in the config somewhere?\n   */\n  const [emailDomains, setEmailDomains] = useState(() => {\n    const { emailDomains } = readB2BInternals(stytch).bootstrap.getSync();\n    return emailDomains;\n  });\n\n  useEffect(() => {\n    readB2BInternals(stytch)\n      .bootstrap.getAsync()\n      .then(({ emailDomains }) => {\n        setEmailDomains(emailDomains);\n      });\n  }, [stytch]);\n\n  // If a domain is explicitly passed in, use it!\n  if (config.emailMagicLinksOptions?.domainHint) {\n    return config.emailMagicLinksOptions?.domainHint;\n  }\n  // If there can only be one logical choice, use it!\n  if (emailDomains.length === 1) {\n    return emailDomains[0];\n  }\n  // If it isn't clear who sent the email\n  // we simply won't provide a hint!\n  return null;\n};\n"],"names":["useEmailDomain","stytch","useStytch","config","useConfig","emailDomains","setEmailDomains","useState","readB2BInternals","bootstrap","getSync","useEffect","getAsync","then","emailMagicLinksOptions","domainHint","length"],"mappings":";;;;;AAKA;;UAGaA,cAAAA,GAAiB,IAAA;AAC5B,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;AACf,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;AACf;;;AAGC,MACD,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGC,CAAAA,CAAS,IAAA;QAC/C,MAAM,EAAEF,YAAY,EAAE,GAAGG,iBAAiBP,MAAAA,CAAAA,CAAQQ,SAAS,CAACC,OAAO,EAAA;QACnE,OAAOL,YAAAA;AACT,IAAA,CAAA,CAAA;IAEAM,CAAAA,CAAU,IAAA;QACRH,gBAAAA,CAAiBP,MAAAA,CAAAA,CACdQ,SAAS,CAACG,QAAQ,EAAA,CAClBC,IAAI,CAAC,CAAC,EAAER,YAAY,EAAE,GAAA;YACrBC,eAAAA,CAAgBD,YAAAA,CAAAA;AAClB,QAAA,CAAA,CAAA;IACJ,CAAA,EAAG;AAACJ,QAAAA;AAAO,KAAA,CAAA;;IAGX,IAAIE,MAAAA,CAAOW,sBAAsB,EAAEC,UAAAA,EAAY;QAC7C,OAAOZ,MAAAA,CAAOW,sBAAsB,EAAEC,UAAAA;AACxC,IAAA;;IAEA,IAAIV,YAAAA,CAAaW,MAAM,KAAK,CAAA,EAAG;QAC7B,OAAOX,YAAY,CAAC,CAAA,CAAE;AACxB,IAAA;;;IAGA,OAAO,IAAA;AACT;;;;"}