From bf42b60a0496b05fd83cb56cc034a541c9897462 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Mon, 4 Aug 2025 09:47:16 +0530 Subject: [PATCH] feat(web): add not found page --- .changeset/config.json | 5 +- apps/web/scripts/generate-analytics.ts | 6 +- apps/web/src/app/not-found.tsx | 81 ++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 apps/web/src/app/not-found.tsx diff --git a/.changeset/config.json b/.changeset/config.json index e55d4ca..21e54fb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,8 +7,5 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": [ - "@better-t-stack/backend", - "web" - ] + "ignore": ["@better-t-stack/backend", "web"] } diff --git a/apps/web/scripts/generate-analytics.ts b/apps/web/scripts/generate-analytics.ts index e6a085d..1cc62e3 100644 --- a/apps/web/scripts/generate-analytics.ts +++ b/apps/web/scripts/generate-analytics.ts @@ -188,7 +188,7 @@ async function generateAnalyticsData() { row["*.properties.examples.1"], ].filter(Boolean); if (examples.length === 0) { - examplesCounts["none"] = (examplesCounts["none"] || 0) + 1; + examplesCounts.none = (examplesCounts.none || 0) + 1; } else { for (const example of examples) { examplesCounts[example] = (examplesCounts[example] || 0) + 1; @@ -205,7 +205,7 @@ async function generateAnalyticsData() { row["*.properties.addons.5"], ].filter(Boolean); if (addons.length === 0) { - addonsCounts["none"] = (addonsCounts["none"] || 0) + 1; + addonsCounts.none = (addonsCounts.none || 0) + 1; } else { for (const addon of addons) { addonsCounts[addon] = (addonsCounts[addon] || 0) + 1; @@ -354,7 +354,7 @@ async function generateAnalyticsData() { monthlyTimeSeries: Object.entries(monthlyCounts) .map(([month, count]) => ({ month, - displayMonth: new Date(month + "-01").toLocaleDateString("en-US", { + displayMonth: new Date(`${month}-01`).toLocaleDateString("en-US", { month: "short", year: "numeric", }), diff --git a/apps/web/src/app/not-found.tsx b/apps/web/src/app/not-found.tsx new file mode 100644 index 0000000..24f3b8a --- /dev/null +++ b/apps/web/src/app/not-found.tsx @@ -0,0 +1,81 @@ +"use client"; + +import { FileX, Home, Terminal } from "lucide-react"; +import Link from "next/link"; + +export default function NotFound() { + return ( +
+
+
+
+
+ + + ERROR_404.TXT + +
+
+ + [PAGE NOT FOUND] + +
+
+ +
+
+
+
+ + ERROR_DETAILS +
+
+ 404 +
+
+ +
+
+
+ $ + + Page not found in directory + +
+
+ ERROR +
+
+
+
+ + +
+
+
+ + GO_HOME +
+
+ SAFE +
+
+ +
+
+
+ + Return to homepage +
+
+ NAVIGATE +
+
+
+
+ +
+
+
+ ); +}