{"version":3,"file":"SSODiscoveryMenu.mjs","sources":["../../../../../../../../../web/src/ui/b2b/screens/SSODiscoveryMenu.tsx"],"sourcesContent":["import { useLingui } from '@lingui/react/macro';\nimport { arrayUtils } from '@stytch/core';\nimport { SSOActiveConnection } from '@stytch/core/public';\nimport * as React from 'react';\n\nimport Button from '../../components/atoms/Button';\nimport Column from '../../components/atoms/Column';\nimport Typography from '../../components/atoms/Typography';\nimport LastUsed from '../../components/molecules/LastUsed';\nimport { SSOButton } from '../components/SSOButton';\nimport { useGlobalReducer } from '../GlobalContextProvider';\nimport { useLastUsedAuthMethod } from '../hooks/useLastUsedAuthMethod';\nimport { extractConnectionId, getSsoMethodKey } from '../types/authMethodKeys';\n\nconst SSOButtons = ({ availableConnections }: { availableConnections: SSOActiveConnection[] }) => {\n  const [lastUsedMethod, setLastUsedMethod] = useLastUsedAuthMethod();\n  const lastUsedSso = extractConnectionId(lastUsedMethod);\n\n  const [connections, foundLastUsed] = arrayUtils.moveToFront(\n    availableConnections,\n    (connection) => connection.connection_id === lastUsedSso,\n  );\n\n  return (\n    <Column gap={2}>\n      {connections.map((provider, index) => {\n        const button = (\n          <SSOButton\n            key={provider.display_name}\n            connection={provider}\n            onStart={(connection) => setLastUsedMethod(getSsoMethodKey(connection))}\n          />\n        );\n\n        return foundLastUsed && index === 0 ? <LastUsed key={provider.display_name}>{button}</LastUsed> : button;\n      })}\n    </Column>\n  );\n};\n\nexport const SSODiscoveryMenu = () => {\n  const [state, dispatch] = useGlobalReducer();\n  const { t } = useLingui();\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.title', message: 'Select a connection to continue' })}\n      </Typography>\n\n      <Column gap={4}>\n        <SSOButtons availableConnections={state.formState.ssoDiscoveryState.connections} />\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":["SSOButtons","availableConnections","lastUsedMethod","setLastUsedMethod","useLastUsedAuthMethod","lastUsedSso","extractConnectionId","connections","foundLastUsed","arrayUtils","moveToFront","connection","connection_id","React.createElement","Column","gap","map","provider","index","button","SSOButton","key","display_name","onStart","getSsoMethodKey","LastUsed","SSODiscoveryMenu","state","dispatch","useGlobalReducer","useLingui","handleBack","type","Typography","variant","formState","ssoDiscoveryState","Button","onClick"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,UAAAA,GAAa,CAAC,EAAEC,oBAAoB,EAAmD,GAAA;IAC3F,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGC,qBAAAA,EAAAA;AAC5C,IAAA,MAAMC,cAAcC,mBAAAA,CAAoBJ,cAAAA,CAAAA;AAExC,IAAA,MAAM,CAACK,WAAAA,EAAaC,aAAAA,CAAc,GAAGC,UAAAA,CAAWC,WAAW,CACzDT,oBAAAA,EACA,CAACU,UAAAA,GAAeA,UAAAA,CAAWC,aAAa,KAAKP,WAAAA,CAAAA;AAG/C,IAAA,qBACEQ,CAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;OACVR,WAAAA,CAAYS,GAAG,CAAC,CAACC,QAAAA,EAAUC,KAAAA,GAAAA;AAC1B,QAAA,MAAMC,uBACJN,CAAA,CAACO,SAAAA,EAAAA;AACCC,YAAAA,GAAAA,EAAKJ,SAASK,YAAY;YAC1BX,UAAAA,EAAYM,QAAAA;YACZM,OAAAA,EAAS,CAACZ,UAAAA,GAAeR,iBAAAA,CAAkBqB,eAAAA,CAAgBb,UAAAA,CAAAA;;QAI/D,OAAOH,aAAAA,IAAiBU,KAAAA,KAAU,CAAA,iBAAIL,CAAA,CAACY,QAAAA,EAAAA;AAASJ,YAAAA,GAAAA,EAAKJ,SAASK;WAAeH,MAAAA,CAAAA,GAAqBA,MAAAA;AACpG,IAAA,CAAA,CAAA,CAAA;AAGN,CAAA;MAEaO,gBAAAA,GAAmB,IAAA;IAC9B,MAAM,CAACC,KAAAA,EAAOC,QAAAA,CAAS,GAAGC,gBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AAEd,IAAA,MAAMC,UAAAA,GAAa,IAAA;QACjBH,QAAAA,CAAS;YAAEI,IAAAA,EAAM;AAAgB,SAAA,CAAA;AACnC,IAAA,CAAA;AAEA,IAAA,qBACEnB,CAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;qBACXF,CAAA,CAACoB,UAAAA,EAAAA;QAAWC,OAAAA,EAAQ;;;;uBAIpBrB,CAAA,CAACC,MAAAA,EAAAA;QAAOC,GAAAA,EAAK;qBACXF,CAAA,CAACb,UAAAA,EAAAA;AAAWC,QAAAA,oBAAAA,EAAsB0B,KAAAA,CAAMQ,SAAS,CAACC,iBAAiB,CAAC7B;sBAEpEM,CAAA,CAACwB,MAAAA,EAAAA;QAAOH,OAAAA,EAAQ,OAAA;QAAQI,OAAAA,EAASP;;;;;AAMzC;;;;"}