diff --git a/package.json b/package.json
index 24300049d..784efffe0 100644
--- a/package.json
+++ b/package.json
@@ -43,8 +43,10 @@
"next": "^13.4.19",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-fuzzysort": "^1.0.1",
"satori": "^0.10.4",
"vite-node": "^0.34.4",
+ "vitepress": "^1.0.0-rc.12",
"vitepress-plugin-auto-sidebar": "^1.1.0"
},
"devDependencies": {
@@ -58,7 +60,6 @@
"compare-versions": "^6.1.0",
"knip": "^2.22.0",
"prettier": "^3.0.3",
- "typescript": "^5.2.2",
- "vitepress": "^1.0.0-rc.10"
+ "typescript": "^5.2.2"
}
}
diff --git a/public/assets/banners/inactive.png b/public/assets/banners/inactive.png
new file mode 100644
index 000000000..0eef8d526
Binary files /dev/null and b/public/assets/banners/inactive.png differ
diff --git a/public/assets/banners/more.png b/public/assets/banners/more.png
new file mode 100644
index 000000000..80969fc5f
Binary files /dev/null and b/public/assets/banners/more.png differ
diff --git a/public/assets/banners/player.png b/public/assets/banners/player.png
new file mode 100644
index 000000000..218853946
Binary files /dev/null and b/public/assets/banners/player.png differ
diff --git a/public/assets/banners/ratings.png b/public/assets/banners/ratings.png
new file mode 100644
index 000000000..11867c046
Binary files /dev/null and b/public/assets/banners/ratings.png differ
diff --git a/public/assets/banners/tank.png b/public/assets/banners/tank.png
new file mode 100644
index 000000000..4bb22331c
Binary files /dev/null and b/public/assets/banners/tank.png differ
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index a89ebffd7..14b9ba56e 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,3 +1,4 @@
+import { Roboto_Flex } from 'next/font/google';
import { ReactNode } from 'react';
import Navbar from '../components/Navbar';
@@ -5,9 +6,14 @@ interface RootLayoutProps {
children: ReactNode;
}
+const robotoFlex = Roboto_Flex({
+ subsets: ['latin'],
+ display: 'swap',
+});
+
export default function RootLayout({ children }: RootLayoutProps) {
return (
-
+
- {children}
+
+ {children}
+
diff --git a/src/app/page.tsx b/src/app/page.tsx
index e85d5092c..f63a18399 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,3 +1,131 @@
+'use client';
+
+import { CaretRightIcon } from '@radix-ui/react-icons';
+import Link from 'next/link';
+import { useRef } from 'react';
+import { Search, SearchItem } from 'react-fuzzysort';
+import { SearchBar } from '../components/SearchBar';
+import { theme } from '../stitches.config';
+
+const TOOLS = [
+ {
+ title: 'Ratings',
+ description: 'Current and old season leader boards',
+ banner: '/assets/banners/ratings.png',
+ href: '/tools/ratings',
+ },
+ {
+ title: 'Tankopedia',
+ description: 'Full Blitz tank encyclopedia',
+ banner: '/assets/banners/tank.png',
+ href: '/tools/tankopedia',
+ },
+ {
+ title: 'Inactivity tracker',
+ description: 'Find inactive members of a clan',
+ banner: '/assets/banners/inactive.png',
+ href: '/tools/inactive',
+ },
+ {
+ title: 'Player profile',
+ description: "A player's basic non-statistical info",
+ banner: '/assets/banners/player.png',
+ href: '/tools/profile',
+ },
+ {
+ title: 'More coming soon',
+ description: 'New tools are added often',
+ banner: '/assets/banners/more.png',
+ href: 'https://discord.gg/nDt7AjGJQH',
+ },
+];
+
export default function Page() {
- return Hello, Next.js!
;
+ const input = useRef(null);
+
+ return (
+
+
+
+
+
+ ({
+ node: (
+
+
+
+ {tool.title}
+
+
+
+ {tool.description}
+
+
+
+ ),
+ query: `${tool.title} ${tool.description}`,
+ }) satisfies SearchItem,
+ )}
+ />
+
+
+ );
}
diff --git a/src/components/Navbar/components/Button.tsx b/src/components/Navbar/components/Button.tsx
index 8be3c2f18..123a464c5 100644
--- a/src/components/Navbar/components/Button.tsx
+++ b/src/components/Navbar/components/Button.tsx
@@ -1,5 +1,4 @@
import { ReactNode } from 'react';
-import { theme } from '../../../stitches.config';
interface ButtonProps {
children: ReactNode;
@@ -9,7 +8,7 @@ export function Button({ children }: ButtonProps) {
return (