import { useCallback, useMemo } from 'react'
import { Helmet } from 'react-helmet-async'
import { Navigate, useSearchParams } from 'react-router-dom'
import { trpc } from '~/utils/trpc'
import IVButton from '~/components/IVButton'
import AuthPageHeader from '~/components/AuthPageHeader'
import EnrollMFAForm from '~/components/AccountSettings/EnrollMFAForm'
import { MeProvider, useMe } from '~/components/MeContext'
import { commaSeparatedList } from '~/utils/text'
import NotFound from '~/components/NotFound'
function EnrollMFAContent({ onSubmit }: { onSubmit: () => void }) {
const session = trpc.useQuery(['auth.session.session'])
const integrations = trpc.useQuery(['dashboard.integrations'])
const [searchParams] = useSearchParams()
const { me, isLoading } = useMe()
const userOrganizationAccess = me?.userOrganizationAccess
const orgsRequiringMfa = useMemo(() => {
if (!userOrganizationAccess) return []
return userOrganizationAccess
.map(access => access.organization)
.filter(org => org.requireMfa)
}, [userOrganizationAccess])
const orgsNotRequiringMfa = useMemo(() => {
if (!userOrganizationAccess) return []
return userOrganizationAccess
.map(access => access.organization)
.filter(org => !org.requireMfa)
}, [userOrganizationAccess])
if (!integrations.isLoading && !integrations.data?.workos) {
return
The{' '} {orgsRequiringMfa.length === 1 ? ( <>organization {orgsRequiringMfa[0].name} requires> ) : ( <> organizations{' '} {commaSeparatedList( orgsRequiringMfa.map(org => org.name), 'and' )}{' '} require > )}{' '} multi-factor authentication {' '} to be enabled for all members.