Fix login (#844)
* Fix login * Fix according to PR * Fix tests * Fix tests
This commit is contained in:
@ -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,
|
||||
},
|
||||
|
||||
@ -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} />
|
||||
@ -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 {
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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) => {
|
||||
|
||||
@ -46,6 +46,7 @@ export const VERIFY = gql`
|
||||
domainName
|
||||
displayName
|
||||
logo
|
||||
inviteHash
|
||||
}
|
||||
}
|
||||
settings {
|
||||
|
||||
@ -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,
|
||||
],
|
||||
);
|
||||
|
||||
|
||||
@ -50,6 +50,7 @@ export function DefaultLayout({ children }: OwnProps) {
|
||||
const isMatchingLocation = useIsMatchingLocation();
|
||||
|
||||
const onboardingStatus = useOnboardingStatus();
|
||||
|
||||
useEffect(() => {
|
||||
const isMachinOngoingUserCreationRoute =
|
||||
isMatchingLocation(AppPath.SignUp) ||
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -21,7 +21,6 @@ export function Verify() {
|
||||
navigate(AppPath.SignIn);
|
||||
} else {
|
||||
await verify(loginToken);
|
||||
navigate('/');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user