Skip to content

Commit aad5aa3

Browse files
Fix ESLint: unescaped entities, unused vars, use Next Image in Logo/Navbar
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 9610167 commit aad5aa3

10 files changed

Lines changed: 61 additions & 50 deletions

File tree

src/app/join-us/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@ export default function JoinUsPage() {
126126
<div className="bg-[#001f33] px-5 lg:px-[120px] py-10 md:py-16 max-w-[1200px] mx-auto">
127127
<div className="flex flex-col gap-4 md:gap-6 items-start text-white">
128128
<h2 className="font-sans text-2xl md:text-[36px] font-normal leading-[1.1] tracking-[-0.72px]">
129-
Don't see a position that fits?
129+
Don&apos;t see a position that fits?
130130
</h2>
131131
<p className="font-sans text-base md:text-lg font-normal leading-[1.4] tracking-[-0.18px] max-w-[600px]">
132-
We're always interested in hearing from exceptional
133-
candidates. If you're passionate about explainable AI and
132+
We&apos;re always interested in hearing from exceptional
133+
candidates. If you&apos;re passionate about explainable AI and
134134
want to contribute to our mission, feel free to reach out.
135135
</p>
136136
<a

src/app/news/[id]/not-found.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default function NotFound() {
1313
Article Not Found
1414
</h1>
1515
<p className="font-sans text-lg md:text-xl font-normal leading-[1.4] text-[#001f33] mb-8 text-center max-w-[600px]">
16-
The news article you're looking for doesn't exist or has been removed.
16+
The news article you&apos;re looking for doesn&apos;t exist or has been removed.
1717
</p>
1818
<Link
1919
href="/news"

src/app/page.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import Navbar from "@/components/Navbar";
22
import Hero from "@/components/Hero";
3-
import Section from "@/components/Section";
43
import Footer from "@/components/Footer";
54
import Image from "next/image";
65
import MissionSection from "@/components/MissionSection";

src/app/projects/[id]/not-found.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function NotFound() {
1212
Project Not Found
1313
</h1>
1414
<p className="font-sans text-lg text-[#001f33]">
15-
The project you're looking for doesn't exist.
15+
The project you&apos;re looking for doesn&apos;t exist.
1616
</p>
1717
<Link
1818
href="/projects"

src/components/ContactForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default function ContactForm() {
4242
message: "Thank you for your message! We'll get back to you soon.",
4343
});
4444
setFormData({ name: "", email: "", subject: "", message: "" });
45-
} catch (error) {
45+
} catch {
4646
setSubmitStatus({
4747
type: "error",
4848
message: "Something went wrong. Please try again later.",

src/components/Logo.tsx

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import Image from "next/image";
2+
13
interface LogoProps {
24
className?: string;
35
variant?: "default" | "white";
@@ -12,44 +14,53 @@ export default function Logo({ className = "", variant = "default", variantMobil
1214
{/* Mobile: show short logo if variantMobile is specified */}
1315
{variantMobile === "short" && (
1416
<>
15-
<div className={`md:hidden relative flex items-center`} style={{ height: "20px" }}>
16-
<img
17+
<div className={`md:hidden relative flex items-center`} style={{ height: "20px", width: "92.855px" }}>
18+
<Image
1719
src={shortLogoSrc}
1820
alt="CCAI Logo"
19-
className={`${variant === "white" ? "brightness-0 invert" : ""}`}
20-
style={{ height: "20px", width: "92.855px", display: "block" }}
21+
fill
22+
className={`object-contain ${variant === "white" ? "brightness-0 invert" : ""}`}
2123
/>
2224
</div>
2325
{/* Desktop: show full logo with all parts */}
2426
<div className={`hidden md:flex relative items-center gap-[6px]`} style={{ height: "22.527px" }}>
25-
<img
26-
src="/images/logo-full-part1.svg"
27-
alt="CCAI"
28-
style={{ height: "22.527px", width: "104.589px", display: "block" }}
29-
/>
30-
<div className="flex flex-col justify-center" style={{ gap: "3px" }}>
31-
<img
32-
src="/images/logo-full-part2.svg"
33-
alt="Centre for Credible"
34-
style={{ height: "7px", width: "76.3px", display: "block" }}
35-
/>
36-
<img
37-
src="/images/logo-full-part3.svg"
38-
alt="Artificial Intelligence"
39-
style={{ height: "9px", width: "90px", display: "block" }}
27+
<div className="relative" style={{ height: "22.527px", width: "104.589px" }}>
28+
<Image
29+
src="/images/logo-full-part1.svg"
30+
alt="CCAI"
31+
fill
32+
className="object-contain"
4033
/>
4134
</div>
35+
<div className="flex flex-col justify-center" style={{ gap: "3px" }}>
36+
<div className="relative" style={{ height: "7px", width: "76.3px" }}>
37+
<Image
38+
src="/images/logo-full-part2.svg"
39+
alt="Centre for Credible"
40+
fill
41+
className="object-contain"
42+
/>
43+
</div>
44+
<div className="relative" style={{ height: "9px", width: "90px" }}>
45+
<Image
46+
src="/images/logo-full-part3.svg"
47+
alt="Artificial Intelligence"
48+
fill
49+
className="object-contain"
50+
/>
51+
</div>
52+
</div>
4253
</div>
4354
</>
4455
)}
4556
{/* Default: show the short logo */}
4657
{!variantMobile && (
47-
<div className={`relative flex items-center ${className || "h-8"}`}>
48-
<img
58+
<div className={`relative flex items-center ${className || "h-8"}`} style={{ width: "92.855px" }}>
59+
<Image
4960
src={shortLogoSrc}
5061
alt="CCAI Logo"
51-
className={`h-full w-auto object-contain ${variant === "white" ? "brightness-0 invert" : ""}`}
52-
style={{ display: "block" }}
62+
fill
63+
className={`object-contain ${variant === "white" ? "brightness-0 invert" : ""}`}
5364
/>
5465
</div>
5566
)}

src/components/MissionSection.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ export default function MissionSection() {
2727
</div>
2828
<div className="font-sans text-base font-normal leading-[1.6] tracking-[-0.16px] text-[#001f33] w-full">
2929
<p className="mb-0">
30-
In a world dominated by algorithms that operate like "black boxes" — so complex that even their creators can't fully explain how or why
30+
In a world dominated by algorithms that operate like &quot;black boxes&quot; — so complex that even their creators can&apos;t fully explain how or why
3131
they make decisions — the Centre for Credible AI (CCAI) was founded.
32-
This is a centre that isn't afraid to question prevailing paradigms,
32+
This is a centre that isn&apos;t afraid to question prevailing paradigms,
3333
with a clear mission: to make artificial intelligence truly
3434
verifiable, explainable, and controllable.
3535
</p>
3636
<p>
3737
We specialize in Explainable Artificial Intelligence (XAI) — a
3838
field that keeps asking questions where most have already accepted
39-
the answers. We're not just interested in building bigger and faster
39+
the answers. We&apos;re not just interested in building bigger and faster
4040
models. We care about whether they can be understood and improved —
4141
because understanding is the foundation of trust, and trust is the
4242
prerequisite for progress.

src/components/Navbar.tsx

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use client";
22

33
import Link from "next/link";
4+
import Image from "next/image";
45
import { NavigationItem } from "@/types";
56
import { useState, useEffect } from "react";
67
import { socialLinks } from "@/constants/navigation";
@@ -78,11 +79,9 @@ function ArrowRightIcon({ className }: { className?: string }) {
7879

7980
export default function Navbar({ items, activeItem }: NavbarProps) {
8081
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
81-
const [isMobile, setIsMobile] = useState(false);
8282

8383
useEffect(() => {
8484
const checkMobile = () => {
85-
setIsMobile(window.innerWidth < 768);
8685
if (window.innerWidth >= 768) {
8786
setIsMobileMenuOpen(false);
8887
}
@@ -108,11 +107,12 @@ export default function Navbar({ items, activeItem }: NavbarProps) {
108107
<>
109108
<nav className="fixed top-0 left-0 right-0 z-50 border-b-[0.5px] border-[#a3a3a3] bg-white">
110109
<div className="mx-auto flex max-w-[1440px] items-center justify-between px-5 lg:px-[120px] py-0 h-[48px] md:h-[64px]">
111-
<Link href="/" className="hover:opacity-80 transition-opacity flex items-center">
112-
<img
113-
src="/images/Logo-hor.svg"
114-
alt="CCAI Logo"
115-
className="h-[20px] md:h-[22.527px] w-auto object-contain"
110+
<Link href="/" className="hover:opacity-80 transition-opacity flex items-center h-[20px] md:h-[22.527px] relative w-[120px] md:w-[140px]">
111+
<Image
112+
src="/images/Logo-hor.svg"
113+
alt="CCAI Logo"
114+
fill
115+
className="object-contain object-left"
116116
/>
117117
</Link>
118118
{/* Desktop Navigation */}
@@ -148,11 +148,12 @@ export default function Navbar({ items, activeItem }: NavbarProps) {
148148
<div className="fixed inset-0 z-[100] bg-[#001f33] flex flex-col">
149149
{/* Mobile Menu Header */}
150150
<div className="flex items-center justify-between px-5 py-5 h-[48px] border-b border-[rgba(255,255,255,0.2)] flex-shrink-0">
151-
<Link href="/" onClick={() => setIsMobileMenuOpen(false)}>
152-
<img
153-
src="/images/Logo-hor.svg"
154-
alt="CCAI Logo"
155-
className="h-[20px] w-auto object-contain brightness-0 invert"
151+
<Link href="/" onClick={() => setIsMobileMenuOpen(false)} className="relative h-[20px] w-[120px] block">
152+
<Image
153+
src="/images/Logo-hor.svg"
154+
alt="CCAI Logo"
155+
fill
156+
className="object-contain object-left brightness-0 invert"
156157
/>
157158
</Link>
158159
<button

src/components/PartnerSection.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ export default function PartnerSection() {
2626
<div className="flex flex-col gap-[10px] items-start w-full">
2727
<p className="font-sans text-base font-normal leading-[1.6] tracking-[-0.16px] text-[#001f33]">
2828
The Fraunhofer-Gesellschaft, headquartered in Germany, is one of
29-
the world's leading organizations for applied research. It plays a
29+
the world&apos;s leading organizations for applied research. It plays a
3030
major role in innovation by prioritizing research on cutting-edge
3131
technologies and the transfer of results to industry to strengthen
32-
Germany's industrial base and for the benefit of society as a
32+
Germany&apos;s industrial base and for the benefit of society as a
3333
whole. Since its founding as a nonprofit organization in 1949,
3434
Fraunhofer has held a unique position in the German research and
3535
innovation ecosystem.

src/components/VisionSection.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ export default function VisionSection() {
3333
this technological mediocrity. Our ambition is to expose the
3434
internal logic of such systems, highlight their limitations, and
3535
provide real tools for control. To us, explainability is not a
36-
"feature" — it's a means to improve models and a gateway to new
36+
&quot;feature&quot; — it&apos;s a means to improve models and a gateway to new
3737
scientific knowledge.
3838
</p>
3939
<p>
4040
Our specialization is in combining explainability and controlability
4141
of AI systems used in high-stakes, socially responsible domains —
42-
such as medicine, education, and bioinformatics. Where prediction
43-
alone isn't enough, and decisions must be grounded in knowledge that
42+
such as medicine, education, and bioinformatics. Where prediction
43+
alone isn&apos;t enough, and decisions must be grounded in knowledge that
4444
can be trusted.
4545
</p>
4646
</div>

0 commit comments

Comments
 (0)