Conversation
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project to Node.js 22.12.0 and updates major dependencies including React 19, Next.js 15, and the @databiosphere/findable-ui library. The changes simplify the Next.js configuration by removing complex webpack aliases and ESM package handling, while adding explicit JSX imports for React 19 compatibility.
Changes:
- Updated Node.js from 20.10.0 to 22.12.0 across all configuration files and documentation
- Upgraded React from 18 to 19, Next.js from 14 to 15, and numerous other dependencies to their latest major versions
- Simplified Next.js configuration by removing webpack aliases and reducing transpiled packages to only @databiosphere/findable-ui
- Added explicit JSX imports from React in TypeScript files for React 19 type system compatibility
- Added jest.config.js and cleaned up test files
Reviewed changes
Copilot reviewed 16 out of 20 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| package.json | Major dependency upgrades including React 19, Next.js 15, and related packages; Node.js version updated to 22.12.0 |
| next.config.mjs | Simplified configuration by removing webpack aliases and ESM package list, now only transpiling findable-ui |
| pages/index.tsx | Added JSX import from React for React 19 compatibility |
| pages/_document.tsx | Added JSX import from React for React 19 compatibility |
| pages/_app.tsx | Added JSX import from React for React 19 compatibility |
| pages/[entityListType]/index.tsx | Added JSX import from React for React 19 compatibility |
| app/components/Table/components/TableCell/components/TypographyNoWrap/typographyNoWrap.tsx | Added JSX import and reformatted interface definition |
| app/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenuItems/components/LabelIconMenuItem/labelIconMenuItem.tsx | Added JSX import alongside existing ElementType import |
| app/components/Index/components/FileDownload/fileDownload.tsx | Added JSX import alongside existing useRef import |
| jest.config.js | Added Jest configuration file with jsdom test environment |
| e2e/hprc-sort.spec.ts | Removed commented-out disabled test for Alignments tab |
| next-env.d.ts | Updated with Next.js 15 generated references and documentation URL |
| README.md | Updated Node.js version requirement from 20.10.0 to 22.12.0 |
| .eslintignore | Added next-env.d.ts to prevent linting of generated file |
| .gitignore | Added .claude/rules* to ignored files |
| cgl-data.humanpangenome.org | Updated Node.js version in build script from 20.10.0 to 22.12.0 |
| cc-data.humanpangenome.dev.clevercanary.com | Updated Node.js version in build script from 20.10.0 to 22.12.0 |
| .github/workflows/run-playwright-tests.yml | Updated Node.js version in workflow from 20.10.0 to 22.12.0 |
| .github/workflows/run-checks.yml | Updated Node.js version in workflow from 20.10.0 to 22.12.0 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
eb4f096 to
7917808
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 20 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 20 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -1,5 +1,6 @@ | |||
| import { Redirect } from "@databiosphere/findable-ui/lib/components/Redirect/redirect"; | |||
| import { useConfig } from "@databiosphere/findable-ui/lib/hooks/useConfig"; | |||
| import { JSX } from "react"; | |||
There was a problem hiding this comment.
JSX is only used as a type here. Prefer a type-only import (import type { JSX } from "react";) to avoid emitting an unnecessary runtime named import and to stay compatible with TS/SWC transpilation.
| import { JSX } from "react"; | |
| import type { JSX } from "react"; |
| import fsp from "fs/promises"; | ||
| import { GetStaticPaths, GetStaticProps, GetStaticPropsContext } from "next"; | ||
| import { ParsedUrlQuery } from "querystring"; | ||
| import { JSX } from "react"; |
There was a problem hiding this comment.
JSX is only used in type positions. Use a type-only import (import type { JSX } from "react";) so the transpiler doesn’t treat it as a runtime named import.
| import { JSX } from "react"; | |
| import type { JSX } from "react"; |
| @@ -1,4 +1,5 @@ | |||
| import Document, { Head, Html, Main, NextScript } from "next/document"; | |||
| import { JSX } from "react"; | |||
There was a problem hiding this comment.
JSX is only referenced as a return type. Use import type { JSX } from "react"; (or React.JSX.Element) to ensure no runtime named import is generated.
| import { JSX } from "react"; | |
| import type { JSX } from "react"; |
| @@ -1,5 +1,6 @@ | |||
| import "@databiosphere/findable-ui"; | |||
| import { AzulEntitiesStaticResponse } from "@databiosphere/findable-ui/lib/apis/azul/common/entities"; | |||
| import { JSX } from "react"; | |||
There was a problem hiding this comment.
JSX is only used as a type annotation. Prefer import type { JSX } from "react"; to avoid a runtime named import and keep type/value imports clearly separated.
| import { JSX } from "react"; | |
| import type { JSX } from "react"; |
| Typography as MTypography, | ||
| TypographyProps as MTypographyProps, | ||
| } from "@mui/material"; | ||
| import { JSX } from "react"; |
There was a problem hiding this comment.
JSX is only used as a return type here. Use a type-only import (import type { JSX } from "react";) so it can’t be emitted as a runtime named import.
| import { JSX } from "react"; | |
| import type { JSX } from "react"; |
| @@ -1,5 +1,5 @@ | |||
| import { OpenInNewIcon } from "@databiosphere/findable-ui/lib/components/common/CustomIcon/components/OpenInNewIcon/openInNewIcon"; | |||
| import { ElementType } from "react"; | |||
| import { ElementType, JSX } from "react"; | |||
There was a problem hiding this comment.
Both ElementType and JSX are types here. Prefer a type-only import (import type { ElementType, JSX } from "react";) to avoid a runtime named import.
| import { ElementType, JSX } from "react"; | |
| import type { ElementType, JSX } from "react"; |
| import { DownloadIcon } from "@databiosphere/findable-ui/lib/components/common/CustomIcon/components/DownloadIcon/downloadIcon"; | ||
| import { IconButton } from "@databiosphere/findable-ui/lib/components/common/IconButton/iconButton"; | ||
| import { useRef } from "react"; | ||
| import { JSX, useRef } from "react"; |
There was a problem hiding this comment.
JSX is only used as a return type. Prefer import type { JSX } from "react"; and keep useRef as the value import.
| import { JSX, useRef } from "react"; | |
| import type { JSX } from "react"; | |
| import { useRef } from "react"; |
Closes #207.
This pull request updates the project to use Node.js version 22.12.0 and upgrades several dependencies to their latest major versions. It also simplifies the Next.js configuration, removes unused code, and ensures compatibility with React 19. Additionally, minor TypeScript improvements were made across several files.
Platform and Dependency Upgrades
README.md, workflow files, shell scripts, andpackage.json, ensuring consistency across documentation and build processes. [1] [2] [3] [4] [5] [6]package.json, including@databiosphere/findable-ui,@mui/material,next, andreactto their latest versions, and added/updated several related packages for compatibility with React 19 and Next.js 15.Configuration Simplification
next.config.mjsby removing complexwebpackalias logic and ESM transpilation, now only transpiling@databiosphere/findable-ui.Codebase Maintenance
e2e/hprc-sort.spec.ts, cleaning up unused code.next-env.d.tsto.eslintignoreto prevent linting of generated TypeScript environment definitions.TypeScript Compatibility
JSXimports from React in multiple TypeScript files to ensure compatibility with React 19's type system. [1] [2] [3] pages/[entityListType]/index.tsxR13, [4] [5] [6]