chore: upgrade Nx to v18.1.3 (#4706)

Split from https://github.com/twentyhq/twenty/pull/4518

- Upgrades dependencies and applies automatic config migrations with the
command: `npx nx migrate nx` (see
https://nx.dev/nx-api/nx/documents/migrate)
- Fixes lint errors after upgrading `@typescript-eslint`

Note: it was not possible (for now) to migrate Nx to the latest stable
version (v18.2.1) because it upgrades Typescript to v5.4.3, which seems
to cause a bug on install when Yarn tries to apply its native patches.
Might be a bug on the Yarn side.
This commit is contained in:
Thaïs
2024-04-01 13:16:50 +02:00
committed by GitHub
parent 5d07b6347e
commit a3e5cf37b0
16 changed files with 592 additions and 678 deletions

View File

@ -30,7 +30,9 @@ export const loggerLink = (getSchemaName: (operation: Operation) => string) =>
const operationType = (operation.query.definitions[0] as any).operation;
const headers = operation.getContext().headers;
const [queryName, query] = parseQuery(operation.query.loc!.source.body);
const [queryName, query] = parseQuery(
operation.query.loc?.source.body ?? '',
);
if (operationType === 'subscription') {
const date = new Date().toLocaleTimeString();

View File

@ -108,7 +108,8 @@ export const useAuth = () => {
.filter(
({ workspace }) => workspace !== null && workspace !== undefined,
)
.map((validWorkspace) => validWorkspace.workspace!);
.map((validWorkspace) => validWorkspace.workspace)
.filter(isDefined);
setWorkspaces(validWorkspaces);
}

View File

@ -53,7 +53,7 @@ export const RecordDetailSectionHeader = ({
<StyledTitleLabel>{title}</StyledTitleLabel>
{link && <StyledLink to={link.to}>{link.label}</StyledLink>}
</StyledTitle>
{hideRightAdornmentOnMouseLeave && !isHovered! ? null : rightAdornment}
{hideRightAdornmentOnMouseLeave && !isHovered ? null : rightAdornment}
</StyledHeader>
);
};

View File

@ -6,8 +6,8 @@ import { beautifyDateDiff } from '~/utils/date-utils';
export const formatExpiration = (
expiresAt: string | null,
withExpiresMention: boolean = false,
short: boolean = true,
withExpiresMention = false,
short = true,
) => {
if (isNonEmptyString(expiresAt)) {
const dateDiff = beautifyDateDiff(expiresAt, undefined, short);

View File

@ -103,7 +103,7 @@ export const MultiWorkspaceDropdownButton = ({
{workspaces.map((workspace) => (
<MenuItemSelectAvatar
key={workspace.id}
text={workspace.displayName!}
text={workspace.displayName ?? ''}
avatar={
<StyledLogo
logo={

View File

@ -5,9 +5,10 @@ import { useSetRecoilState } from 'recoil';
import { currentUserState } from '@/auth/states/currentUserState';
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { Workspaces, workspacesState } from '@/auth/states/workspaces';
import { workspacesState } from '@/auth/states/workspaces';
import { GET_CURRENT_USER } from '@/users/graphql/queries/getCurrentUser';
import { ColorScheme } from '@/workspace-member/types/WorkspaceMember';
import { User } from '~/generated/graphql';
import { isDefined } from '~/utils/isDefined';
export const UserProvider = ({ children }: React.PropsWithChildren) => {
@ -21,32 +22,34 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => {
currentWorkspaceMemberState,
);
const { loading: queryLoading, data: queryData } = useQuery(GET_CURRENT_USER);
const { loading: queryLoading, data: queryData } = useQuery<{
currentUser: User;
}>(GET_CURRENT_USER);
useEffect(() => {
if (!queryLoading) {
setIsLoading(false);
}
if (isDefined(queryData?.currentUser)) {
setCurrentUser(queryData.currentUser);
setCurrentWorkspace(queryData.currentUser.defaultWorkspace);
}
if (isDefined(queryData?.currentUser?.workspaceMember)) {
const workspaceMember = queryData.currentUser.workspaceMember;
if (!isDefined(queryData?.currentUser)) return;
setCurrentUser(queryData.currentUser);
setCurrentWorkspace(queryData.currentUser.defaultWorkspace);
const { workspaceMember, workspaces: userWorkspaces } =
queryData.currentUser;
if (isDefined(workspaceMember)) {
setCurrentWorkspaceMember({
...workspaceMember,
colorScheme: (workspaceMember.colorScheme as ColorScheme) ?? 'Light',
});
}
if (isDefined(queryData?.currentUser?.workspaces)) {
const validWorkspaces = queryData.currentUser.workspaces.filter(
(obj: any) => obj.workspace !== null && obj.workspace !== undefined,
);
const workspaces: Workspaces[] = [];
validWorkspaces.forEach((validWorkspace: any) => {
const workspace = validWorkspace.workspace! as Workspaces;
workspaces.push(workspace);
});
if (isDefined(userWorkspaces)) {
const workspaces = userWorkspaces
.map(({ workspace }) => workspace)
.filter(isDefined);
setWorkspaces(workspaces);
}