Fix mock mode transition to regular mode on login (#361)

This commit is contained in:
Charles Bochet
2023-06-22 14:09:51 -07:00
committed by GitHub
parent c4ad0171b0
commit ba1dd07e53
8 changed files with 85 additions and 60 deletions

View File

@ -10,9 +10,9 @@ import { HorizontalSeparator } from '@/auth/components/ui/HorizontalSeparator';
import { Logo } from '@/auth/components/ui/Logo';
import { Modal } from '@/auth/components/ui/Modal';
import { Title } from '@/auth/components/ui/Title';
import { useMockData } from '@/auth/hooks/useMockData';
import { hasAccessToken } from '@/auth/services/AuthService';
import { authFlowUserEmailState } from '@/auth/states/authFlowUserEmailState';
import { isMockModeState } from '@/auth/states/isMockModeState';
import { PrimaryButton } from '@/ui/components/buttons/PrimaryButton';
import { SecondaryButton } from '@/ui/components/buttons/SecondaryButton';
import { TextInput } from '@/ui/components/inputs/TextInput';
@ -28,17 +28,19 @@ const StyledContentContainer = styled.div`
export function Index() {
const navigate = useNavigate();
const theme = useTheme();
useMockData();
const [, setMockMode] = useRecoilState(isMockModeState);
const [authFlowUserEmail, setAuthFlowUserEmail] = useRecoilState(
authFlowUserEmailState,
);
useEffect(() => {
setMockMode(true);
if (hasAccessToken()) {
navigate('/');
}
}, [navigate]);
}, [navigate, setMockMode]);
const onGoogleLoginClick = useCallback(() => {
window.location.href = process.env.REACT_APP_AUTH_URL + '/google' || '';

View File

@ -11,6 +11,7 @@ import { SubTitle } from '@/auth/components/ui/SubTitle';
import { Title } from '@/auth/components/ui/Title';
import { getTokensFromLoginToken } from '@/auth/services/AuthService';
import { authFlowUserEmailState } from '@/auth/states/authFlowUserEmailState';
import { isMockModeState } from '@/auth/states/isMockModeState';
import { PrimaryButton } from '@/ui/components/buttons/PrimaryButton';
import { TextInput } from '@/ui/components/inputs/TextInput';
import { Companies } from '~/pages/companies/Companies';
@ -35,6 +36,7 @@ const StyledErrorContainer = styled.div`
export function PasswordLogin() {
const navigate = useNavigate();
const [, setMockMode] = useRecoilState(isMockModeState);
const prefillPassword =
process.env.NODE_ENV === 'development' ? 'applecar2025' : '';
@ -60,19 +62,22 @@ export function PasswordLogin() {
},
);
if (response.ok) {
const { loginToken } = await response.json();
if (!loginToken) {
// TODO Display error message
return;
}
await getTokensFromLoginToken(loginToken.token);
navigate('/');
if (!response.ok) {
const errorData = await response.json();
setFormError(errorData.message);
return;
}
const errorData = await response.json();
setFormError(errorData.message);
}, [authFlowUserEmail, internalPassword, navigate]);
const { loginToken } = await response.json();
if (!loginToken) {
return;
}
await getTokensFromLoginToken(loginToken.token);
setMockMode(false);
navigate('/');
}, [authFlowUserEmail, internalPassword, navigate, setMockMode]);
useHotkeys(
'enter',