🚀 Migrate to ESLint CLI & Fix All Issues

 ESLint CLI Migration:
- Migrated from deprecated 'next lint' to modern 'eslint .'
- Updated package.json script: 'lint': 'eslint .'
- Updated eslint.config.mjs with Next.js ignores
- No more deprecation warnings

 Fixed ESLint Errors:
- Added displayName to React components in jest.setup.ts
- Replaced 'any' types with proper TypeScript types
- Fixed require() import in next.config.ts → ES6 import
- Fixed Difficulty enum values (Beginner → BEGINNER, etc.)

 Build Status:
- ESLint: 0 errors, 0 warnings 
- TypeScript: All type errors resolved 
- Build: Successful compilation 
- 22 routes generated successfully 

🎯 Ready for Next.js 16:
- No deprecated dependencies
- Modern ESLint configuration
- Future-proof codebase
This commit is contained in:
Dennis Konkol
2025-09-05 23:05:52 +00:00
parent a3f7b37460
commit 604c5077d9
6 changed files with 18 additions and 10 deletions

View File

@@ -9,20 +9,26 @@ jest.mock("react-responsive-masonry", () => ({
default: ({ children }: { children: React.ReactNode }) =>
React.createElement("div", null, children),
get ResponsiveMasonry() {
return ({ children }: { children: React.ReactNode }) =>
const ResponsiveMasonryComponent = ({ children }: { children: React.ReactNode }) =>
React.createElement("div", null, children);
ResponsiveMasonryComponent.displayName = 'ResponsiveMasonry';
return ResponsiveMasonryComponent;
},
}));
// Mock next/link
jest.mock('next/link', () => {
return ({ children }: { children: React.ReactNode }) => children;
const LinkComponent = ({ children }: { children: React.ReactNode }) => children;
LinkComponent.displayName = 'Link';
return LinkComponent;
});
// Mock next/image
jest.mock('next/image', () => {
return ({ src, alt, ...props }: any) =>
const ImageComponent = ({ src, alt, ...props }: Record<string, unknown>) =>
React.createElement('img', { src, alt, ...props });
ImageComponent.displayName = 'Image';
return ImageComponent;
});
// Custom render function with ToastProvider