{"version":3,"file":"SSODiscoveryFallback.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/SSODiscoveryFallback.tsx"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport React, { useState } from 'react';\n\nimport Button from '../../components/atoms/Button';\nimport Column from '../../components/atoms/Column';\nimport Typography from '../../components/atoms/Typography';\nimport Input from '../../components/molecules/Input';\nimport { useConfig, useGlobalReducer, useStytch } from '../GlobalContextProvider';\nimport { AppScreens } from '../types/AppScreens';\nimport { useMutate } from '../utils';\n\nexport const SSODiscoveryFallback = () => {\n  const [, dispatch] = useGlobalReducer();\n  const [slug, setSlug] = useState('');\n  const [error, setError] = useState<string>();\n  const [isSubmitting, setIsSubmitting] = useState(false);\n  const stytchClient = useStytch();\n  const { ssoOptions } = useConfig();\n  const { t } = useLingui();\n\n  const { trigger: lookupOrganization } = useMutate(\n    'stytch.organization.getBySlug',\n    async (_: string, { arg: { slug } }: { arg: { slug: string } }) =>\n      stytchClient.organization.getBySlug({ organization_slug: slug }),\n    {\n      onError: () => {\n        setError(t({ id: 'ssoDiscovery.fallback.error.unknown', message: 'An error occurred. Please try again.' }));\n        setIsSubmitting(false);\n      },\n    },\n  );\n\n  const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n    e.preventDefault();\n    setError(undefined);\n    setIsSubmitting(true);\n\n    const result = await lookupOrganization({ slug });\n    if (result) {\n      const { organization } = result;\n      if (organization === null) {\n        setError(\n          t({ id: 'ssoDiscovery.fallback.error.orgNotFound', message: 'Organization not found. Please try again.' }),\n        );\n        setIsSubmitting(false);\n      } else if (organization.sso_active_connections.length === 1) {\n        const [connection] = organization.sso_active_connections;\n        await stytchClient.sso.start({\n          connection_id: connection.connection_id,\n          login_redirect_url: ssoOptions?.loginRedirectURL,\n          signup_redirect_url: ssoOptions?.signupRedirectURL,\n        });\n      } else {\n        dispatch({\n          type: 'set_organization',\n          organization,\n        });\n        dispatch({ type: 'transition', screen: AppScreens.Main });\n      }\n    }\n  };\n\n  const handleTryAnotherMethod = () => {\n    dispatch({ type: 'transition', screen: AppScreens.Main });\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.fallback.title', message: \"Sorry, we couldn't find any connections\" })}\n      </Typography>\n      <Typography>\n        {t({\n          id: 'ssoDiscovery.fallback.content',\n          message:\n            \"Please input the Organization's unique slug to continue. If you don't know the unique slug, log in through another method to view all of your available Organizations.\",\n        })}\n      </Typography>\n\n      <Column as=\"form\" onSubmit={handleSubmit} gap={2}>\n        <Input\n          id=\"organization-slug\"\n          hideLabel\n          label={t({ id: 'formField.orgSlug.label', message: 'Organization slug' })}\n          value={slug}\n          onChange={(e) => setSlug(e.target.value)}\n          placeholder={t({ id: 'formField.orgSlug.label', message: 'Organization slug' })}\n          error={error}\n        />\n\n        <Button variant=\"primary\" loading={isSubmitting} type=\"submit\" disabled={!slug || isSubmitting}>\n          {t({ id: 'button.continue', message: 'Continue' })}\n        </Button>\n\n        <Button variant=\"outline\" onClick={handleTryAnotherMethod}>\n          {t({ id: 'ssoDiscovery.fallback.button.reset', message: 'Try another method' })}\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":["SSODiscoveryFallback","dispatch","useGlobalReducer","slug","setSlug","useState","error","setError","isSubmitting","setIsSubmitting","stytchClient","useStytch","ssoOptions","useConfig","useLingui","trigger","lookupOrganization","useMutate","_","arg","organization","getBySlug","organization_slug","onError","handleSubmit","e","preventDefault","undefined","result","sso_active_connections","length","connection","sso","start","connection_id","login_redirect_url","loginRedirectURL","signup_redirect_url","signupRedirectURL","type","screen","AppScreens","Main","handleTryAnotherMethod","handleBack","React","Column","gap","Typography","variant","as","onSubmit","Input","id","hideLabel","label","value","onChange","target","placeholder","Button","loading","disabled","onClick"],"mappings":"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"}