Fix login (#844)

* Fix login

* Fix according to PR

* Fix tests

* Fix tests
This commit is contained in:
Charles Bochet
2023-07-22 19:43:28 -07:00
committed by GitHub
parent c4468d60f6
commit 4ac01f2931
10 changed files with 15 additions and 47 deletions

View File

@ -2,7 +2,6 @@ import { Meta } from '@storybook/react';
import { App } from '~/App';
import { graphqlMocks } from '~/testing/graphqlMocks';
import { mockedUserJWT } from '~/testing/mock-data/jwt';
import { Story } from './App.stories';
import { renderWithDarkMode } from './shared';
@ -16,14 +15,6 @@ export default meta;
export const DarkMode: Story = {
render: () => renderWithDarkMode(true),
loaders: [
async () => ({
accessTokenStored: window.localStorage.setItem(
'accessToken',
mockedUserJWT,
),
}),
],
parameters: {
msw: graphqlMocks,
},

View File

@ -1,11 +0,0 @@
{ /* App.mdx */ }
import { Canvas, Meta } from '@storybook/blocks';
import * as App from './App.stories';
<Meta of={App} />
# App View
<Canvas of={App.Default} />

View File

@ -2024,7 +2024,7 @@ export type VerifyMutationVariables = Exact<{
}>;
export type VerifyMutation = { __typename?: 'Mutation', verify: { __typename?: 'Verify', user: { __typename?: 'User', id: string, email: string, displayName: string, firstName?: string | null, lastName?: string | null, workspaceMember?: { __typename?: 'WorkspaceMember', id: string, workspace: { __typename?: 'Workspace', id: string, domainName?: string | null, displayName?: string | null, logo?: string | null } } | null, settings: { __typename?: 'UserSettings', id: string, colorScheme: ColorScheme, locale: string } }, tokens: { __typename?: 'AuthTokenPair', accessToken: { __typename?: 'AuthToken', token: string, expiresAt: string }, refreshToken: { __typename?: 'AuthToken', token: string, expiresAt: string } } } };
export type VerifyMutation = { __typename?: 'Mutation', verify: { __typename?: 'Verify', user: { __typename?: 'User', id: string, email: string, displayName: string, firstName?: string | null, lastName?: string | null, workspaceMember?: { __typename?: 'WorkspaceMember', id: string, workspace: { __typename?: 'Workspace', id: string, domainName?: string | null, displayName?: string | null, logo?: string | null, inviteHash?: string | null } } | null, settings: { __typename?: 'UserSettings', id: string, colorScheme: ColorScheme, locale: string } }, tokens: { __typename?: 'AuthTokenPair', accessToken: { __typename?: 'AuthToken', token: string, expiresAt: string }, refreshToken: { __typename?: 'AuthToken', token: string, expiresAt: string } } } };
export type RenewTokenMutationVariables = Exact<{
refreshToken: Scalars['String'];
@ -2922,6 +2922,7 @@ export const VerifyDocument = gql`
domainName
displayName
logo
inviteHash
}
}
settings {

View File

@ -92,24 +92,23 @@ export function CommentThread({
showComment = true,
autoFillTitle = false,
}: OwnProps) {
const { data, loading } = useGetCommentThreadQuery({
const { data } = useGetCommentThreadQuery({
variables: {
commentThreadId: commentThreadId ?? '',
},
skip: !commentThreadId,
});
const commentThread = data?.findManyCommentThreads[0];
const [hasUserManuallySetTitle, setHasUserManuallySetTitle] =
useState<boolean>(false);
const [title, setTitle] = useState<string | null>(null);
useEffect(() => {
if (!loading) {
if (!hasUserManuallySetTitle) {
setTitle(commentThread?.title ?? '');
}
}, [loading, setTitle, commentThread?.title]);
const [hasUserManuallySetTitle, setHasUserManuallySetTitle] =
useState<boolean>(false);
}, [setTitle, commentThread?.title, hasUserManuallySetTitle]);
const [updateCommentThreadMutation] = useUpdateCommentThreadMutation();

View File

@ -62,13 +62,14 @@ export function useAuth() {
throw new Error('No verify result');
}
setCurrentUser(verifyResult.data?.verify.user);
setTokenPair(verifyResult.data?.verify.tokens);
setIsAuthenticating(false);
return verifyResult.data?.verify;
},
[setIsAuthenticating, setTokenPair, verify],
[setIsAuthenticating, setTokenPair, verify, setCurrentUser],
);
const handleCrendentialsSignIn = useCallback(
@ -111,11 +112,9 @@ export function useAuth() {
signUpResult.data?.signUp.loginToken.token,
);
setCurrentUser(user);
return { user };
},
[signUp, handleVerify, setCurrentUser],
[signUp, handleVerify],
);
const handleGoogleLogin = useCallback((workspaceInviteHash?: string) => {

View File

@ -46,6 +46,7 @@ export const VERIFY = gql`
domainName
displayName
logo
inviteHash
}
}
settings {

View File

@ -14,7 +14,6 @@ import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar';
import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation';
import { useAuth } from '../../hooks/useAuth';
import { currentUserState } from '../../states/currentUserState';
import { PASSWORD_REGEX } from '../../utils/passwordRegex';
export enum SignInUpMode {
@ -57,7 +56,6 @@ export function useSignInUp() {
: SignInUpMode.SignUp,
);
const [showErrors, setShowErrors] = useState(false);
const [, setCurrentUser] = useRecoilState(currentUserState);
const form = useForm<Form>({
mode: 'onChange',
@ -108,18 +106,13 @@ export function useSignInUp() {
throw new Error('Email and password are required');
}
if (signInUpMode === SignInUpMode.SignIn) {
const { user } = await signInWithCredentials(
data.email,
data.password,
);
setCurrentUser(user);
await signInWithCredentials(data.email, data.password);
} else {
const { user } = await signUpWithCredentials(
await signUpWithCredentials(
data.email,
data.password,
workspaceInviteHash,
);
setCurrentUser(user);
}
navigate('/create/workspace');
} catch (err: any) {
@ -135,7 +128,6 @@ export function useSignInUp() {
workspaceInviteHash,
enqueueSnackBar,
signInUpMode,
setCurrentUser,
],
);

View File

@ -50,6 +50,7 @@ export function DefaultLayout({ children }: OwnProps) {
const isMatchingLocation = useIsMatchingLocation();
const onboardingStatus = useOnboardingStatus();
useEffect(() => {
const isMachinOngoingUserCreationRoute =
isMatchingLocation(AppPath.SignUp) ||

View File

@ -16,10 +16,7 @@ import { TextInput } from '@/ui/input/components/TextInput';
import { useSnackBar } from '@/ui/snack-bar/hooks/useSnackBar';
import { SubSectionTitle } from '@/ui/title/components/SubSectionTitle';
import { GET_CURRENT_USER } from '@/users/queries';
import {
useGetCurrentUserLazyQuery,
useUpdateWorkspaceMutation,
} from '~/generated/graphql';
import { useUpdateWorkspaceMutation } from '~/generated/graphql';
const StyledContentContainer = styled.div`
width: 100%;
@ -48,7 +45,6 @@ export function CreateWorkspace() {
const { enqueueSnackBar } = useSnackBar();
const [updateWorkspace] = useUpdateWorkspaceMutation();
useGetCurrentUserLazyQuery();
// Form
const {

View File

@ -21,7 +21,6 @@ export function Verify() {
navigate(AppPath.SignIn);
} else {
await verify(loginToken);
navigate('/');
}
}