Upgrade frontend toolchain to latest majors

Bump React 19.2, Relay 21, React Router 8, Vite 8 with
@vitejs/plugin-react 6, ESLint 10, GraphQL 17, TypeScript 6,
@types/node 24, and Tailwind 4.3 across the workspaces.

vite-plugin-react 6 (Vite 8) no longer runs Babel, so the Relay
tagged-template transform now runs through @rolldown/plugin-babel
in the console and trust Vite configs.

Relay 21 ships first-party types and enables the ambiguous-alias
check by default; disable that flag to preserve existing queries
and add explicit usePreloadedQuery type arguments where the new
types no longer infer the operation. TypeScript 6 deprecations and
stricter inference are addressed in tsconfigs and call sites.

Keep n8n-node on ESLint 9 and eslint-plugin-react on 7.37.5, the
newest releases compatible with their toolchains.

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-06-18 19:10:00 +02:00
parent f1fc2dc0e0
commit f98b73f073
130 changed files with 2228 additions and 1763 deletions

View File

@@ -39,12 +39,15 @@ export type Order = {
const defaultPageSize = 50;
export const SortableContext = createContext({
export const SortableContext = createContext<{
order: Order;
changeOrder: (order: Order) => void;
}>({
order: {
direction: "DESC",
field: "CREATED_AT",
},
changeOrder: (() => {}) as (order: Order) => void,
changeOrder: () => {},
});
const defaultOrder = {

View File

@@ -25,7 +25,7 @@ import {
} from "@probo/ui";
import { clsx } from "clsx";
import { type ReactNode } from "react";
import type { KeyType, KeyTypeData } from "react-relay/relay-hooks/helpers";
import type { KeyType, KeyTypeData } from "react-relay/ReactRelayTypes";
import type { usePaginationFragmentHookType } from "react-relay/relay-hooks/usePaginationFragment";
import type { GraphQLTaggedNode, OperationType } from "relay-runtime";
import { z } from "zod";

View File

@@ -39,18 +39,21 @@ type Order = {
export const defaultPageSize = 50;
export const SortableContext = createContext({
export const SortableContext = createContext<{
order: Order;
onOrderChange: (order: Order) => void;
}>({
order: {
direction: "DESC",
field: "CREATED_AT",
},
onOrderChange: (() => {}) as (order: Order) => void,
onOrderChange: () => {},
});
const defaultOrder = {
direction: "DESC",
field: "CREATED_AT",
} as Order;
};
export function SortableDataTable({
refetch,