Skip to content

Conversation

tommaso1
Copy link
Collaborator

Core Dependencies Upgraded

  • Next.js: 14.2.30 → 15.5.3
  • React: 18.3.1 → 19.1.1
  • React DOM: 18.3.1 → 19.1.1
  • TypeScript: 5.1.6 → 5.9.2

Material-UI Upgraded to v7

  • @mui/material: 5.14.5 → 7.3.2
  • @mui/icons-material: 5.14.3 → 7.3.2
  • @mui/lab: 5.0.0-alpha.140 → 7.0.0-beta.17
  • @mui/utils: 5.14.5 → 7.3.2
  • Added: @mui/base, @mui/styles, @mui/x-tree-view

ESLint Migration

  • ESLint: 8.47.0 → 9.35.0
  • Migrated from .eslintrc.json to eslint.config.js (flat config)
  • Added ESLint plugins: @typescript-eslint, prettier, react-hooks, functional

Configuration Updates

  • Enabled Turbopack: "dev": "next dev --turbopack"
  • Added React type overrides for v19 compatibility

Dependencies Removed

  • isomorphic-dompurify
  • jsdom
  • @bufbuild/jest-environment-jsdom
  • jest-environment-jsdom

Dependencies Added

  • rapidoc: 9.3.8
  • ESLint ecosystem packages for flat config support

Code Changes

  • 530+ files auto-formatted to comply with new ESLint rules
  • No business logic modifications
  • All changes are formatting/linting related

List of Changes

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Chore (nothing changes by a user perspective)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

Copy link

changeset-bot bot commented Sep 16, 2025

🦋 Changeset detected

Latest commit: 82af7c8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
nextjs-website Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Sep 17, 2025

Jira Pull Request Link

This Pull Request refers to the following Jira issue DEV-2561

Copy link
Contributor

Branch is not up to date with base branch

@tommaso1 it seems this Pull Request is not updated with base branch.
Please proceed with a merge or rebase to solve this.

Copy link
Contributor

This PR exceeds the recommended size of 800 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size.

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request upgrades the project from Next.js 14/React 18 to Next.js 15/React 19, with Material-UI upgraded to v7, ESLint migrated to v9 with flat config, and TypeScript upgraded to v5.9.2. The changes primarily involve automatic formatting/linting updates to comply with new ESLint rules, dependency version updates, and necessary code adaptations for framework compatibility.

Key changes include:

  • Core framework upgrades (Next.js 15.5.3, React 19.1.1, TypeScript 5.9.2)
  • Material-UI ecosystem upgrade to v7 with new Grid API usage
  • ESLint migration to flat config with new plugins
  • API viewer replacement from Stoplight Elements to RapidOC

Reviewed Changes

Copilot reviewed 243 out of 245 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package.json Adds rapidoc dependency for new API viewer
tsconfig.json Adds lib configuration for TypeScript 5.9.2 compatibility
convertEmojiToUnicode.ts Type annotation fix for tag parameter
Various component files Migration to new MUI Grid API and component prop updates
Route handlers Adaptation to Next.js 15 async params API
ESLint-related files Mass formatting changes for new ESLint rules compliance

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

}
const fallbackResult = emojiData.find(({ tags }) =>
tags?.some((tag) => tag === emojiName)
tags?.some((tag: any) => tag === emojiName)
Copy link

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using any type defeats the purpose of TypeScript's type safety. Consider defining a proper type for the tag parameter or using a more specific type annotation.

Suggested change
tags?.some((tag: any) => tag === emojiName)
tags?.some((tag: string) => tag === emojiName)

Copilot uses AI. Check for mistakes.

// Use regex-based approach for server-side compatibility
const headingRegex = /<(h[1-4])[^>]*>(.*?)<\/\1>/gi;
let processedContent = content;
let match;
Copy link

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using let for the match variable and assignment in while condition can be error-prone. Consider using a more functional approach or at least declare the variable with proper typing: let match: RegExpExecArray | null;

Suggested change
let match;
let match: RegExpExecArray | null;

Copilot uses AI. Check for mistakes.

Comment on lines +7 to +13
declare global {
namespace React.JSX {
interface IntrinsicElements {
'rapi-doc': React.DetailedHTMLProps<
React.HTMLAttributes<HTMLElement>,
HTMLElement
> & {
Copy link

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Global type declarations should be moved to a dedicated types file (e.g., types/rapidoc.d.ts) rather than being declared inline in component files for better maintainability and reusability.

Copilot uses AI. Check for mistakes.

Comment on lines +63 to +64
xs: (cardSize?.xs as any) || 12,
md: (cardSize?.md as any) || 6,
Copy link

Copilot AI Sep 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using as any type assertion should be avoided. Consider properly typing the cardSize object or using a type guard to ensure type safety.

Suggested change
xs: (cardSize?.xs as any) || 12,
md: (cardSize?.md as any) || 6,
xs: cardSize?.xs ?? 12,
md: cardSize?.md ?? 6,

Copilot uses AI. Check for mistakes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or maybe better:

Suggested change
xs: (cardSize?.xs as any) || 12,
md: (cardSize?.md as any) || 6,
xs: cardSize?.xs || 12,
md: cardSize?.md || 6,

Copy link
Contributor

github-actions bot commented Oct 8, 2025

This pull request is stale because it has been open for 14 days with no activity. If the pull request is still valid, please update it within 21 days to keep it open or merge it, otherwise it will be closed automatically.

@github-actions github-actions bot added the stale label Oct 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants