{"version":3,"file":"SSODiscoveryEmail.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/SSODiscoveryEmail.tsx"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport React, { useState } from 'react';\n\nimport { extractErrorMessage } from '../../../utils/extractErrorMessage';\nimport Button from '../../components/atoms/Button';\nimport Column from '../../components/atoms/Column';\nimport Typography from '../../components/atoms/Typography';\nimport EmailInput from '../../components/molecules/EmailInput';\nimport { useConfig, useGlobalReducer, useStytch } from '../GlobalContextProvider';\nimport { useSsoDiscoveryConnection } from '../hooks/useSsoDiscoveryConnection';\n\nexport const SSODiscoveryEmail = () => {\n  const [, dispatch] = useGlobalReducer();\n  const [email, setEmail] = useState('');\n  const { t } = useLingui();\n\n  const [error, setError] = useState<string>();\n  const [isLoading, setIsLoading] = useState(false);\n\n  const { trigger } = useSsoDiscoveryConnection();\n\n  const stytch = useStytch();\n  const { ssoOptions } = useConfig();\n\n  const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n    e.preventDefault();\n    setError(undefined);\n\n    const tryGetConnections = async () => {\n      try {\n        const response = await trigger({ emailAddress: email });\n\n        if (!response) {\n          return [];\n        }\n\n        return response.connections;\n      } catch (e) {\n        setError(\n          extractErrorMessage(\n            e,\n            t({\n              id: 'ssoDiscovery.email.error.unknown',\n              message: 'Something went wrong. Try again later or contact your admin for help.',\n            }),\n          ),\n        );\n      }\n    };\n\n    try {\n      setIsLoading(true);\n\n      const connections = await tryGetConnections();\n\n      if (connections?.length === 1) {\n        const [connection] = connections;\n        await stytch.sso.start({\n          connection_id: connection.connection_id,\n          login_redirect_url: ssoOptions?.loginRedirectURL,\n          signup_redirect_url: ssoOptions?.signupRedirectURL,\n        });\n\n        // We intentionally leave `isLoading` set to `true` since we're expecting\n        // the user to be redirected\n        return;\n      }\n\n      setIsLoading(false);\n\n      if (connections) {\n        dispatch({ type: 'set_sso_discovery_state', connections });\n      }\n    } catch (e) {\n      setIsLoading(false);\n      throw e;\n    }\n  };\n\n  const handleBack = () => {\n    dispatch({ type: 'navigate_back' });\n  };\n\n  return (\n    <Column gap={6}>\n      <Typography variant=\"header\">\n        {t({ id: 'ssoDiscovery.email.title', message: 'Enter your email to continue' })}\n      </Typography>\n\n      <Column as=\"form\" onSubmit={handleSubmit} gap={2}>\n        <EmailInput email={email} setEmail={setEmail} hideLabel error={error} />\n\n        <Button variant=\"primary\" loading={isLoading} type=\"submit\">\n          {t({ id: 'button.continue', message: 'Continue' })}\n        </Button>\n\n        <Button variant=\"ghost\" onClick={handleBack}>\n          {t({ id: 'button.goBack', message: 'Go back' })}\n        </Button>\n      </Column>\n    </Column>\n  );\n};\n"],"names":["SSODiscoveryEmail","dispatch","useGlobalReducer","email","setEmail","useState","useLingui","error","setError","isLoading","setIsLoading","trigger","useSsoDiscoveryConnection","stytch","useStytch","ssoOptions","useConfig","handleSubmit","e","preventDefault","undefined","tryGetConnections","response","emailAddress","connections","extractErrorMessage","length","connection","sso","start","connection_id","login_redirect_url","loginRedirectURL","signup_redirect_url","signupRedirectURL","type","handleBack","React","Column","gap","Typography","variant","as","onSubmit","EmailInput","hideLabel","Button","loading","onClick"],"mappings":"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"}