@@ -20,7 +20,7 @@ const Login: NextPage = () => {
2020 const [ oidcFlow , setOidcFlow ] = useState < LoginFlow > ( ) ;
2121 const [ selectedRole , setSelectedRole ] = useState < string | undefined > ( 'engineer' ) ;
2222 const [ isAccLinkageRequested , setIsAccLinkageRequested ] = useState ( false ) ;
23-
23+ const [ totpFlow , setTotpFlow ] = useState < LoginFlow > ( ) ;
2424 // Get ?flow=... from the URL
2525 const router = useRouter ( )
2626 const {
@@ -90,6 +90,13 @@ const Login: NextPage = () => {
9090 submitNode . meta . label . text = "Proceed"
9191 }
9292
93+ if ( initialFlow . ui . nodes . some ( ( node : any ) => node . group === "totp" ) ) {
94+ const totcData = JSON . parse ( JSON . stringify ( flowData ) ) ;
95+ totcData . ui . nodes = totcData . ui . nodes . filter ( ( node : any ) => node . group == "totp" || node . group == "default" ) ;
96+ // prevent duplicate messages
97+ totcData . ui . messages = [ ] ;
98+ setTotpFlow ( totcData ) ;
99+ }
93100
94101 if ( flowData . ui . nodes . some ( ( node : any ) => node . group === "oidc" ) ) {
95102 const oidcData = JSON . parse ( JSON . stringify ( flowData ) ) ;
@@ -164,7 +171,12 @@ const Login: NextPage = () => {
164171 < div className = "divider-outer" > < span className = "divider" > Or</ span > </ div >
165172 < Flow onSubmit = { onSubmit } flow = { oidcFlow } only = "oidc" />
166173 </ > : null }
174+ { totpFlow ?
175+ < >
176+ < Flow onSubmit = { onSubmit } flow = { totpFlow } only = "totp" />
177+ </ > : null }
167178 </ div > ) : ( < >
179+
168180 < fieldset >
169181 < span className = "typography-h3" >
170182 Select role
0 commit comments