Path: blob/1.0-develop/resources/scripts/components/dashboard/AccountOverviewContainer.tsx
7461 views
import * as React from 'react';1import ContentBox from '@/components/elements/ContentBox';2import UpdatePasswordForm from '@/components/dashboard/forms/UpdatePasswordForm';3import UpdateEmailAddressForm from '@/components/dashboard/forms/UpdateEmailAddressForm';4import ConfigureTwoFactorForm from '@/components/dashboard/forms/ConfigureTwoFactorForm';5import PageContentBlock from '@/components/elements/PageContentBlock';6import tw from 'twin.macro';7import { breakpoint } from '@/theme';8import styled from 'styled-components/macro';9import MessageBox from '@/components/MessageBox';10import { useLocation } from 'react-router-dom';1112const Container = styled.div`13${tw`flex flex-wrap`};1415& > div {16${tw`w-full`};1718${breakpoint('sm')`19width: calc(50% - 1rem);20`}2122${breakpoint('md')`23${tw`w-auto flex-1`};24`}25}26`;2728export default () => {29const { state } = useLocation<undefined | { twoFactorRedirect?: boolean }>();3031return (32<PageContentBlock title={'Account Overview'}>33{state?.twoFactorRedirect && (34<MessageBox title={'2-Factor Required'} type={'error'}>35Your account must have two-factor authentication enabled in order to continue.36</MessageBox>37)}3839<Container css={[tw`lg:grid lg:grid-cols-3 mb-10`, state?.twoFactorRedirect ? tw`mt-4` : tw`mt-10`]}>40<ContentBox title={'Update Password'} showFlashes={'account:password'}>41<UpdatePasswordForm />42</ContentBox>43<ContentBox css={tw`mt-8 sm:mt-0 sm:ml-8`} title={'Update Email Address'} showFlashes={'account:email'}>44<UpdateEmailAddressForm />45</ContentBox>46<ContentBox css={tw`md:ml-8 mt-8 md:mt-0`} title={'Two-Step Verification'}>47<ConfigureTwoFactorForm />48</ContentBox>49</Container>50</PageContentBlock>51);52};535455