From 7a6ba998fc03ce20626af92f1d3fd9da555f23d8 Mon Sep 17 00:00:00 2001
From: "gpt-engineer-app[bot]"
<159125892+gpt-engineer-app[bot]@users.noreply.github.com>
Date: Tue, 19 May 2026 15:12:50 +0000
Subject: [PATCH] Changes
Co-authored-by: Damaj301damaj-lol <90093996+Damaj301damaj-lol@users.noreply.github.com>
---
src/pages/Index.tsx | 57 ++++++++++++++++++++++++++-------------------
1 file changed, 33 insertions(+), 24 deletions(-)
diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx
index c0c2e8e..07cb5fc 100644
--- a/src/pages/Index.tsx
+++ b/src/pages/Index.tsx
@@ -1,10 +1,11 @@
import { useRef, useState, useEffect, useCallback } from 'react';
+import { Link } from 'react-router-dom';
import { GlassCard } from '@/components/GlassCard';
import avatar from '@/assets/avatar.png';
-import { Home, MessageCircle, Rss, GitBranch, Search, ExternalLink } from 'lucide-react';
+import { MessageCircle, Rss, GitBranch, Search, ExternalLink, ArrowUpRight } from 'lucide-react';
const items = [
- { icon: MessageCircle, label: 'Who Am I?', href: 'https://damaj.tech/site/whoami', desc: 'About me' },
+ { icon: MessageCircle, label: 'Who Am I?', href: '/whoami', desc: 'About me', internal: true },
{ icon: Rss, label: 'Blog', href: 'https://damaj.tech/site/blog', desc: 'My writings' },
{ icon: GitBranch, label: 'Git Server', href: 'https://git.damaj.tech/', desc: 'Self-hosted Forgejo' },
{ icon: Search, label: 'SearXNG', href: 'https://searxng.damaj.tech/', desc: 'Private search' },
@@ -151,28 +152,36 @@ const Index = () => {
const cardW = isMobile ? 110 : 130;
const cardH = isMobile ? 80 : 90;
- return (
- { cardRefs.current[i] = el; }}
- href={item.href}
- target="_blank"
- rel="noopener noreferrer"
- className="absolute"
- style={{
- left: `calc(50% + ${x}px - ${cardW / 2}px)`,
- top: `calc(50% + ${y}px - ${cardH / 2}px)`,
- width: cardW,
- }}
- >
-
-
-
-
-
- {item.label}
- {item.desc}
-
+ const cardContent = (
+
+
+
+ {item.internal
+ ?
+ :
}
+
+ {item.label}
+ {item.desc}
+
+ );
+
+ const commonProps = {
+ ref: (el: HTMLAnchorElement | null) => { cardRefs.current[i] = el; },
+ className: 'absolute',
+ style: {
+ left: `calc(50% + ${x}px - ${cardW / 2}px)`,
+ top: `calc(50% + ${y}px - ${cardH / 2}px)`,
+ width: cardW,
+ },
+ };
+
+ return item.internal ? (
+
+ {cardContent}
+
+ ) : (
+
+ {cardContent}
);
})}