chore: upgrade to React 19 and use images.remotePatterns
CI and Deploy / Build site (push) Failing after 19s
CI and Deploy / Build and push image (push) Skipped
CI and Deploy / Deploy to Kubernetes (push) Skipped

Fixes Next.js 16 deprecation warnings for React 18 and images.domains.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jesse Egbosionu
2026-10-24 21:42:40 +02:00
co-authored by Claude Opus 5.5
parent c6b6c31df6
commit c5ff89f4e5
4 changed files with 24 additions and 87 deletions
-48
View File
@@ -1,48 +0,0 @@
import Link from 'next/link';
import Icon from './Icon';
export default function ProjectCard({ project }) {
const { title, description, tags, href, repo, featured, internal } = project;
const primaryHref = href || repo;
return (
<article className={`project-card ${featured ? 'is-featured' : ''}`}>
<div className="project-top">
{featured ? (
<span className="pill pill-accent">
<span className="live-dot" /> Live
</span>
) : (
<Icon name="github" size={20} className="project-glyph" />
)}
{repo && href && (
<a href={repo} target="_blank" rel="noopener noreferrer" className="project-repo" aria-label={`${title} source code`}>
<Icon name="github" size={16} />
</a>
)}
</div>
<h3 className="project-title">
{internal ? (
<Link href={primaryHref} className="project-link">
{title}
</Link>
) : (
<a href={primaryHref} target="_blank" rel="noopener noreferrer" className="project-link">
{title}
</a>
)}
<Icon name="arrowUpRight" size={18} className="project-arrow" />
</h3>
<p className="project-description">{description}</p>
<ul className="tag-list">
{tags.map((tag) => (
<li key={tag} className="tag">
{tag}
</li>
))}
</ul>
</article>
);
}
+6 -1
View File
@@ -1,6 +1,11 @@
module.exports = { module.exports = {
images: { images: {
domains: ['res.cloudinary.com'], remotePatterns: [
{
protocol: 'https',
hostname: 'res.cloudinary.com',
},
],
}, },
output: 'standalone', output: 'standalone',
}; };
+16 -36
View File
@@ -9,8 +9,8 @@
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"next": "^16.4.3", "next": "^16.4.3",
"react": "^18.2.0", "react": "^19.3.1",
"react-dom": "^18.2.0", "react-dom": "^19.3.1",
"sass": "^1.32.12" "sass": "^1.32.12"
}, },
"devDependencies": { "devDependencies": {
@@ -1018,22 +1018,6 @@
"node": ">=0.12.0" "node": ">=0.12.0"
} }
}, },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
"loose-envify": "cli.js"
}
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.20", "version": "3.3.20",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz",
@@ -1214,26 +1198,24 @@
"dev": true "dev": true
}, },
"node_modules/react": { "node_modules/react": {
"version": "18.2.0", "version": "19.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz",
"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==",
"dependencies": { "license": "MIT",
"loose-envify": "^1.1.0"
},
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/react-dom": { "node_modules/react-dom": {
"version": "18.2.0", "version": "19.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz",
"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==",
"license": "MIT",
"dependencies": { "dependencies": {
"loose-envify": "^1.1.0", "scheduler": "^0.28.0"
"scheduler": "^0.23.0"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^18.2.0" "react": "^19.3.1"
} }
}, },
"node_modules/readdirp": { "node_modules/readdirp": {
@@ -1264,12 +1246,10 @@
} }
}, },
"node_modules/scheduler": { "node_modules/scheduler": {
"version": "0.23.0", "version": "0.28.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz",
"integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==",
"dependencies": { "license": "MIT"
"loose-envify": "^1.1.0"
}
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.8.5", "version": "7.8.5",
+2 -2
View File
@@ -9,8 +9,8 @@
}, },
"dependencies": { "dependencies": {
"next": "^16.4.3", "next": "^16.4.3",
"react": "^18.2.0", "react": "^19.3.1",
"react-dom": "^18.2.0", "react-dom": "^19.3.1",
"sass": "^1.32.12" "sass": "^1.32.12"
}, },
"devDependencies": { "devDependencies": {