diff --git a/app/api/revalidate/route.ts b/app/api/revalidate/route.ts index 1dde420..14e162d 100644 --- a/app/api/revalidate/route.ts +++ b/app/api/revalidate/route.ts @@ -25,7 +25,7 @@ export async function POST(request: NextRequest) { if (!secret) { return NextResponse.json( { error: "Webhook not configured" }, - { status: 500 } + { status: 500 }, ); } diff --git a/app/blog/page.tsx b/app/blog/page.tsx index 274f96d..c09915e 100644 --- a/app/blog/page.tsx +++ b/app/blog/page.tsx @@ -13,12 +13,12 @@ async function ArticleList({ page }: { page: Promise }) { const totalPages = Math.max( 1, - Math.ceil(articles.length / ARTICLES_PER_PAGE) + Math.ceil(articles.length / ARTICLES_PER_PAGE), ); const currentPage = Math.min(Math.max(1, Number(pageParam) || 1), totalPages); const paginatedArticles = articles.slice( (currentPage - 1) * ARTICLES_PER_PAGE, - currentPage * ARTICLES_PER_PAGE + currentPage * ARTICLES_PER_PAGE, ); return ( diff --git a/app/components/BlogCard.tsx b/app/components/BlogCard.tsx index e33deb7..b34a783 100644 --- a/app/components/BlogCard.tsx +++ b/app/components/BlogCard.tsx @@ -14,11 +14,11 @@ export default function BlogCard({ article, compact }: BlogCardProps) { href={`/blog/${id}`} className={clsx( "group flex items-center justify-between border-b border-black/10 transition-colors hover:border-black/30", - compact ? "py-3" : "py-5" + compact ? "py-3" : "py-5", )} >
-

+

{title}

diff --git a/app/components/BlogPreview.tsx b/app/components/BlogPreview.tsx index 168bc5f..21cffa5 100644 --- a/app/components/BlogPreview.tsx +++ b/app/components/BlogPreview.tsx @@ -16,7 +16,7 @@ export default async function BlogPreview() { Little star dancing with light rays Nos derniers articles diff --git a/app/components/ContactUs.tsx b/app/components/ContactUs.tsx index 36cfc38..2f7e433 100644 --- a/app/components/ContactUs.tsx +++ b/app/components/ContactUs.tsx @@ -21,7 +21,7 @@ export default function ContactUs({ isLight ? "border-black text-black hover:bg-black/10" : "border-white text-white hover:bg-white/20", - className + className, )} > Nous contacter diff --git a/app/components/Cover.tsx b/app/components/Cover.tsx index 4d1606f..c1b1ea8 100644 --- a/app/components/Cover.tsx +++ b/app/components/Cover.tsx @@ -38,7 +38,7 @@ export default function Cover() {

-
+
diff --git a/app/components/CoverBackground.tsx b/app/components/CoverBackground.tsx index ce57728..a6fe217 100644 --- a/app/components/CoverBackground.tsx +++ b/app/components/CoverBackground.tsx @@ -18,7 +18,7 @@ export default function CoverBackground({ children }: CoverBackgroundProps) { }} >
setMobileOpen(false) : () => {}} > @@ -39,7 +39,7 @@ export default function Menu({ variant = "dark" }: MenuProps) {
diff --git a/app/components/NotionRenderer.tsx b/app/components/NotionRenderer.tsx index 81fb54c..c19fce7 100644 --- a/app/components/NotionRenderer.tsx +++ b/app/components/NotionRenderer.tsx @@ -118,9 +118,9 @@ function BlockRenderer({ block }: { block: NotionBlock }) { case "heading_2": case "heading_3": { const config = { - heading_1: { tag: "h2" as const, size: "text-2xl" }, - heading_2: { tag: "h3" as const, size: "text-xl" }, - heading_3: { tag: "h4" as const, size: "text-lg" }, + heading_1: { tag: "h2" as const, size: "text-xl md:text-2xl" }, + heading_2: { tag: "h3" as const, size: "text-lg md:text-xl" }, + heading_3: { tag: "h4" as const, size: "text-base md:text-lg" }, }[block.type]; const richText = getBlockRichText(block); if (!richText) return null; @@ -140,7 +140,7 @@ function BlockRenderer({ block }: { block: NotionBlock }) { {block.code.language} )} -
+          
             
               {extractPlainText(block.code.rich_text)}
             
@@ -185,7 +185,7 @@ function BlockRenderer({ block }: { block: NotionBlock }) {
                 ? extractPlainText(block.image.caption)
                 : ""
             }
-            className="rounded-lg"
+            className="max-w-full rounded-lg"
           />
           {block.image.caption.length > 0 && (
             
diff --git a/app/components/Pagination.tsx b/app/components/Pagination.tsx index 0345767..3cff6c9 100644 --- a/app/components/Pagination.tsx +++ b/app/components/Pagination.tsx @@ -23,7 +23,7 @@ function getPageNumbers(currentPage: number, totalPages: number): PageItem[] { totalPages - 3, totalPages - 2, totalPages - 1, - totalPages + totalPages, ); } else { pages.push( @@ -32,7 +32,7 @@ function getPageNumbers(currentPage: number, totalPages: number): PageItem[] { currentPage, currentPage + 1, "ellipsis", - totalPages + totalPages, ); } @@ -81,12 +81,12 @@ export default function Pagination({ "grid h-10 w-10 place-items-center rounded-2xl border text-sm font-medium", page === currentPage ? "border-black bg-black text-white" - : "border-black bg-transparent text-black hover:bg-black/10" + : "border-black bg-transparent text-black hover:bg-black/10", )} > {page} - ) + ), )} {currentPage < totalPages ? ( diff --git a/app/components/Portfolio.tsx b/app/components/Portfolio.tsx index 3405304..fbceead 100644 --- a/app/components/Portfolio.tsx +++ b/app/components/Portfolio.tsx @@ -19,7 +19,7 @@ export default function Portfolio() { Little star dancing with light rays Nos dernières victoires diff --git a/app/components/Stack.tsx b/app/components/Stack.tsx index ad17a3e..0b81378 100644 --- a/app/components/Stack.tsx +++ b/app/components/Stack.tsx @@ -57,8 +57,8 @@ export default function Stack() { De Rails à l'IA, on maîtrise la stack qu'il vous faut.

-
-
+
+

Notre arsenal favori @@ -120,7 +120,7 @@ export default function Stack() {

-
+

Intelligence Artificielle diff --git a/app/components/Team.tsx b/app/components/Team.tsx index 7229b4f..b551a8a 100644 --- a/app/components/Team.tsx +++ b/app/components/Team.tsx @@ -85,8 +85,8 @@ export default function Team() { src={patioNicolas} alt="Picture of Nicolas from above in a the patio with a laptop looking surprised" placeholder="blur" - className="border-8 border-white object-cover drop-shadow-lg" - width={470} + className="w-full border-8 border-white object-cover drop-shadow-lg" + sizes="(max-width: 768px) 50vw, 470px" />

@@ -94,8 +94,8 @@ export default function Team() { src={officeMehdiNicolas} alt="Picture of Mehdi and Nicolas looking at code on a laptop screen in an office" placeholder="blur" - className="border-8 border-white object-cover" - width={470} + className="w-full border-8 border-white object-cover" + sizes="(max-width: 768px) 50vw, 470px" />
@@ -103,8 +103,8 @@ export default function Team() { src={patioAlexisLili} alt="Picture of Alexis and Lili with a laptop smiling in the patio" placeholder="blur" - className="border-8 border-white object-cover" - width={470} + className="w-full border-8 border-white object-cover" + sizes="(max-width: 768px) 50vw, 470px" />
diff --git a/app/components/Values.tsx b/app/components/Values.tsx index 30aa3d2..24450fa 100644 --- a/app/components/Values.tsx +++ b/app/components/Values.tsx @@ -40,7 +40,7 @@ export default function Values() { Handrawing of a strike through to mimic an underline

Nos plus-values diff --git a/components/Disclosure.client.tsx b/components/Disclosure.client.tsx index a62784a..a4da7b1 100644 --- a/components/Disclosure.client.tsx +++ b/components/Disclosure.client.tsx @@ -20,7 +20,7 @@ export default function CustomDisclosure({ {({ open }) => (
- + {title} {children} diff --git a/lib/notion.ts b/lib/notion.ts index 87ea3ba..b5b8d7a 100644 --- a/lib/notion.ts +++ b/lib/notion.ts @@ -65,10 +65,10 @@ export function extractPlainText(richText: RichTextItemResponse[]): string { } function extractPageMeta( - page: PageObjectResponse + page: PageObjectResponse, ): Omit | null { const titleProp = Object.values(page.properties).find( - (prop) => prop.type === "title" + (prop) => prop.type === "title", ); if (!titleProp || titleProp.type !== "title") return null; @@ -107,7 +107,7 @@ const MAX_BLOCK_DEPTH = 5; async function fetchAllBlocks( blockId: string, - depth = 0 + depth = 0, ): Promise { if (depth >= MAX_BLOCK_DEPTH) return []; @@ -127,11 +127,13 @@ async function fetchAllBlocks( if (block.has_children) { block.children = await fetchAllBlocks(block.id, depth + 1); } - }) + }), ); blocks.push(...typed); - cursor = response.has_more ? response.next_cursor ?? undefined : undefined; + cursor = response.has_more + ? (response.next_cursor ?? undefined) + : undefined; } while (cursor); return blocks; @@ -153,7 +155,7 @@ export async function fetchArticles(): Promise { }); const pages = response.results.filter( - (r): r is PageObjectResponse => "properties" in r + (r): r is PageObjectResponse => "properties" in r, ); const articles = await Promise.all( @@ -162,7 +164,7 @@ export async function fetchArticles(): Promise { if (!meta) return null; const author = await resolveAuthor(p); return { ...meta, author } satisfies ArticleMeta; - }) + }), ); return articles.filter((a): a is ArticleMeta => a !== null); @@ -173,7 +175,7 @@ export async function fetchArticles(): Promise { } export async function fetchArticleById( - id: string + id: string, ): Promise { "use cache"; cacheLife("max");