{"version":3,"file":"OAuthButtons.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Main/OAuthButtons.tsx"],"sourcesContent":["import { arrayUtils } from '@stytch/core';\nimport React from 'react';\n\nimport ButtonColumn from '../../../components/molecules/ButtonColumn';\nimport LastUsed from '../../../components/molecules/LastUsed';\nimport { GoogleOneTap } from '../../components/GoogleOneTap';\nimport { OAuthButton } from '../../components/OAuthButton';\nimport { useConfig } from '../../GlobalContextProvider';\nimport { useLastUsedOAuth } from './useLastUsedOAuth';\n\nexport const OAuthButtons = () => {\n  const config = useConfig();\n  const [lastUsedOAuth, setLastUsedOAuth] = useLastUsedOAuth();\n\n  if (!config.oauthOptions) return <></>;\n  const { providers, loginRedirectURL, signupRedirectURL } = config.oauthOptions;\n\n  const [reorderedProviders, foundLastUsed] = arrayUtils.moveToFront(\n    providers,\n    (provider) => provider.type === lastUsedOAuth,\n  );\n\n  return (\n    <ButtonColumn>\n      {reorderedProviders.map((provider, index) => {\n        const providerProps = {\n          customScopes: provider.custom_scopes,\n          providerParams: provider.provider_params,\n        };\n\n        if (provider.one_tap) {\n          return (\n            <GoogleOneTap\n              position={provider.position}\n              key={`oauth-${provider.type}`}\n              {...providerProps}\n              cancelOnTapOutside={provider.cancel_on_tap_outside}\n            />\n          );\n        }\n\n        const button = (\n          <OAuthButton\n            key={`oauth-${provider.type}`}\n            providerType={provider.type}\n            loginRedirectUrl={loginRedirectURL}\n            signupRedirectUrl={signupRedirectURL}\n            onSuccess={() => setLastUsedOAuth(provider.type)}\n            {...providerProps}\n          />\n        );\n\n        return foundLastUsed && index === 0 ? <LastUsed>{button}</LastUsed> : button;\n      })}\n    </ButtonColumn>\n  );\n};\n"],"names":["OAuthButtons","config","useConfig","lastUsedOAuth","setLastUsedOAuth","useLastUsedOAuth","oauthOptions","React","providers","loginRedirectURL","signupRedirectURL","reorderedProviders","foundLastUsed","arrayUtils","moveToFront","provider","type","ButtonColumn","map","index","providerProps","customScopes","custom_scopes","providerParams","provider_params","one_tap","GoogleOneTap","position","key","cancelOnTapOutside","cancel_on_tap_outside","button","OAuthButton","providerType","loginRedirectUrl","signupRedirectUrl","onSuccess","LastUsed"],"mappings":";;;;;;;;;MAUaA,YAAAA,GAAe,IAAA;AAC1B,IAAA,MAAMC,MAAAA,GAASC,SAAAA,EAAAA;IACf,MAAM,CAACC,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGC,gBAAAA,EAAAA;AAE1C,IAAA,IAAI,CAACJ,MAAAA,CAAOK,YAAY,EAAE,qBAAOC,EAAA,CAAA,aAAA,CAAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA;IACjC,MAAM,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAGT,MAAAA,CAAOK,YAAY;AAE9E,IAAA,MAAM,CAACK,kBAAAA,EAAoBC,aAAAA,CAAc,GAAGC,UAAAA,CAAWC,WAAW,CAChEN,SAAAA,EACA,CAACO,QAAAA,GAAaA,QAAAA,CAASC,IAAI,KAAKb,aAAAA,CAAAA;AAGlC,IAAA,qBACEI,iBAACU,YAAAA,EAAAA,IAAAA,EACEN,kBAAAA,CAAmBO,GAAG,CAAC,CAACH,QAAAA,EAAUI,KAAAA,GAAAA;AACjC,QAAA,MAAMC,aAAAA,GAAgB;AACpBC,YAAAA,YAAAA,EAAcN,SAASO,aAAa;AACpCC,YAAAA,cAAAA,EAAgBR,SAASS;AAC3B,SAAA;QAEA,IAAIT,QAAAA,CAASU,OAAO,EAAE;AACpB,YAAA,qBACElB,EAAA,CAAA,aAAA,CAACmB,YAAAA,EAAAA;AACCC,gBAAAA,QAAAA,EAAUZ,SAASY,QAAQ;AAC3BC,gBAAAA,GAAAA,EAAK,CAAC,MAAM,EAAEb,QAAAA,CAASC,IAAI,CAAA,CAAE;AAC5B,gBAAA,GAAGI,aAAa;AACjBS,gBAAAA,kBAAAA,EAAoBd,SAASe;;AAGnC,QAAA;AAEA,QAAA,MAAMC,uBACJxB,EAAA,CAAA,aAAA,CAACyB,WAAAA,EAAAA;AACCJ,YAAAA,GAAAA,EAAK,CAAC,MAAM,EAAEb,QAAAA,CAASC,IAAI,CAAA,CAAE;AAC7BiB,YAAAA,YAAAA,EAAclB,SAASC,IAAI;YAC3BkB,gBAAAA,EAAkBzB,gBAAAA;YAClB0B,iBAAAA,EAAmBzB,iBAAAA;YACnB0B,SAAAA,EAAW,IAAMhC,gBAAAA,CAAiBW,QAAAA,CAASC,IAAI,CAAA;AAC9C,YAAA,GAAGI;;AAIR,QAAA,OAAOR,aAAAA,IAAiBO,KAAAA,KAAU,CAAA,iBAAIZ,EAAA,CAAA,aAAA,CAAC8B,gBAAUN,MAAAA,CAAAA,GAAqBA,MAAAA;AACxE,IAAA,CAAA,CAAA,CAAA;AAGN;;;;"}