fix(bug-link):replace link(router) to achor for external url

This commit is contained in:
sanjidarimi
2026-06-17 20:52:40 +06:00
parent aa7ee3f19e
commit a3afa63717
5 changed files with 34 additions and 32 deletions
-1
View File
@@ -34,7 +34,6 @@ export default function BlogSection() {
<div className="absolute inset-0 bg-gradient-to-b from-transparent via-primary/5 to-transparent" /> <div className="absolute inset-0 bg-gradient-to-b from-transparent via-primary/5 to-transparent" />
<div className="container mx-auto px-4 relative z-10"> <div className="container mx-auto px-4 relative z-10">
{/* Section Header */}
<motion.div <motion.div
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
+25 -14
View File
@@ -1,6 +1,6 @@
import logo from "@/assets/logo.webp"; import logo from "@/assets/logo.webp";
import { motion } from "framer-motion"; import { motion } from "framer-motion";
import { Facebook, Github, Gitlab, Instagram, Linkedin, Mail, Twitter } from "lucide-react"; import { Facebook, Gitlab, Instagram, Linkedin } from "lucide-react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
const quickLinks = [ const quickLinks = [
@@ -24,7 +24,11 @@ const socials = [
href: "https://www.linkedin.com/company/techzaa", href: "https://www.linkedin.com/company/techzaa",
label: "LinkedIn", label: "LinkedIn",
}, },
{ icon: Facebook, href: "https://www.facebook.com/techzaaalpha", label: "Facebook" }, {
icon: Facebook,
href: "https://www.facebook.com/techzaaalpha",
label: "Facebook",
},
{ icon: Gitlab, href: "https://gitlab.techzaa.tech", label: "Gitlab" }, { icon: Gitlab, href: "https://gitlab.techzaa.tech", label: "Gitlab" },
{ icon: Instagram, href: "#", label: "Instagram" }, { icon: Instagram, href: "#", label: "Instagram" },
]; ];
@@ -32,16 +36,16 @@ const socials = [
export default function Footer() { export default function Footer() {
return ( return (
<footer className="relative overflow-hidden bg-secondary/50 py-20"> <footer className="relative overflow-hidden bg-secondary/50 py-20">
{/* Animated gradient divider */}
<div className="absolute top-0 left-0 right-0 h-1 gradient-primary-animated" /> <div className="absolute top-0 left-0 right-0 h-1 gradient-primary-animated" />
{/* Background decoration */}
<div className="absolute inset-0 opacity-20"> <div className="absolute inset-0 opacity-20">
<div className="absolute bottom-0 left-0 w-96 h-96 bg-primary/10 rounded-full blur-[150px]" /> <div className="absolute bottom-0 left-0 w-96 h-96 bg-primary/10 rounded-full blur-[150px]" />
<div className="absolute top-0 right-0 w-72 h-72 bg-neon-purple/10 rounded-full blur-[120px]" /> <div className="absolute top-0 right-0 w-72 h-72 bg-neon-purple/10 rounded-full blur-[120px]" />
</div> </div>
{/* Circuit pattern background */}
<div className="absolute inset-0 opacity-5"> <div className="absolute inset-0 opacity-5">
<svg <svg
className="w-full h-full" className="w-full h-full"
@@ -70,7 +74,7 @@ export default function Footer() {
<div className="container mx-auto px-4 relative z-10"> <div className="container mx-auto px-4 relative z-10">
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-12 mb-16"> <div className="grid md:grid-cols-2 lg:grid-cols-4 gap-12 mb-16">
{/* Brand */}
<motion.div <motion.div
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
@@ -84,11 +88,9 @@ export default function Footer() {
Transforming ideas into powerful digital solutions. We build the Transforming ideas into powerful digital solutions. We build the
future with technology. future with technology.
</p> </p>
</motion.div> </motion.div>
{/* Quick Links */}
<motion.div <motion.div
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
@@ -111,7 +113,7 @@ export default function Footer() {
</ul> </ul>
</motion.div> </motion.div>
{/* Services */}
<motion.div <motion.div
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }}
@@ -157,7 +159,7 @@ export default function Footer() {
))} ))}
</div> </div>
<p className="text-muted-foreground text-sm"> <p className="text-muted-foreground text-sm">
Rangpur, Bangladesh Rangpur, Bangladesh
<br /> <br />
techzaa.alpha@gmail.com techzaa.alpha@gmail.com
<br /> <br />
@@ -179,13 +181,22 @@ export default function Footer() {
© {new Date().getFullYear()} TechZaa. All rights reserved. © {new Date().getFullYear()} TechZaa. All rights reserved.
</p> </p>
<div className="flex items-center gap-6 text-sm text-muted-foreground"> <div className="flex items-center gap-6 text-sm text-muted-foreground">
<Link to="/privacy" className="hover:text-primary transition-colors"> <Link
to="/privacy"
className="hover:text-primary transition-colors"
>
Privacy Policy Privacy Policy
</Link> </Link>
<Link to="/privacy" className="hover:text-primary transition-colors"> <Link
to="/privacy"
className="hover:text-primary transition-colors"
>
Terms of Service Terms of Service
</Link> </Link>
<Link to="/privacy" className="hover:text-primary transition-colors"> <Link
to="/privacy"
className="hover:text-primary transition-colors"
>
Cookie Policy Cookie Policy
</Link> </Link>
</div> </div>
+2 -5
View File
@@ -1,11 +1,9 @@
import { motion, useInView } from "framer-motion"; import { motion, useInView } from "framer-motion";
import { Github, Linkedin, Twitter } from "lucide-react";
import { useRef } from "react"; import { useRef } from "react";
import { Autoplay, Pagination } from "swiper/modules"; import { Autoplay, Pagination } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react"; import { Swiper, SwiperSlide } from "swiper/react";
import { useTeam } from "@/hooks/queires/useTeam"; import { useTeam } from "@/hooks/queires/useTeam";
import { Link } from "react-router-dom";
import PremiumBadge from "../shared/PremiumBadge"; import PremiumBadge from "../shared/PremiumBadge";
export default function TeamSection() { export default function TeamSection() {
@@ -19,14 +17,14 @@ export default function TeamSection() {
return ( return (
<section id="team" ref={ref} className="pt-20 1relative overflow-hidden"> <section id="team" ref={ref} className="pt-20 1relative overflow-hidden">
{/* Background decoration */}
<div className="absolute inset-0 opacity-30"> <div className="absolute inset-0 opacity-30">
<div className="absolute top-0 right-1/4 w-72 h-72 bg-neon-purple/10 rounded-full blur-[120px]" /> <div className="absolute top-0 right-1/4 w-72 h-72 bg-neon-purple/10 rounded-full blur-[120px]" />
<div className="absolute bottom-0 left-1/4 w-64 h-64 bg-primary/10 rounded-full blur-xl" /> <div className="absolute bottom-0 left-1/4 w-64 h-64 bg-primary/10 rounded-full blur-xl" />
</div> </div>
<div className="container mx-auto px-4 relative z-10"> <div className="container mx-auto px-4 relative z-10">
{/* Section Header */}
<motion.div <motion.div
initial={{ opacity: 0, y: 20 }} initial={{ opacity: 0, y: 20 }}
animate={isInView ? { opacity: 1, y: 0 } : {}} animate={isInView ? { opacity: 1, y: 0 } : {}}
@@ -42,7 +40,6 @@ export default function TeamSection() {
</p> </p>
</motion.div> </motion.div>
{/* Team Slider Container */}
<div className="w-full"> <div className="w-full">
<Swiper <Swiper
direction={"horizontal"} direction={"horizontal"}
+6 -8
View File
@@ -16,11 +16,9 @@ import ReactMarkdown from "react-markdown";
import { Link, useNavigate, useParams } from "react-router-dom"; import { Link, useNavigate, useParams } from "react-router-dom";
import remarkGfm from "remark-gfm"; import remarkGfm from "remark-gfm";
import { toast } from "sonner"; import { toast } from "sonner";
export default function BlogArticle() { export default function BlogArticle() {
const { id } = useParams<{ id: string }>(); const { id } = useParams<{ id: string }>();
const { data } = useBlogById(id); const { data } = useBlogById(id);
const post = data?.data.data; const post = data?.data.data;
const navigate = useNavigate(); const navigate = useNavigate();
// const post = getPostBySlug(id || ''); // const post = getPostBySlug(id || '');
@@ -337,24 +335,24 @@ export default function BlogArticle() {
<p className="text-muted-foreground mb-4">{post.author.bio}</p> <p className="text-muted-foreground mb-4">{post.author.bio}</p>
<div className="flex gap-3 justify-center md:justify-start"> <div className="flex gap-3 justify-center md:justify-start">
{post.author.twitter && ( {post.author.twitter && (
<Link <a
to={`https://twitter.com/${post.author.twitter}`} href={`https://twitter.com/${post.author.twitter}`}
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="p-2 rounded-full glass hover:neon-glow transition-all" className="p-2 rounded-full glass hover:neon-glow transition-all"
> >
<Twitter className="w-5 h-5" /> <Twitter className="w-5 h-5" />
</Link> </a>
)} )}
{post.author.linkedin && ( {post.author.linkedin && (
<Link <a
to={`https://linkedin.com/in/${post.author.linkedin}`} href={`https://linkedin.com/in/${post.author.linkedin}`}
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="p-2 rounded-full glass hover:neon-glow transition-all" className="p-2 rounded-full glass hover:neon-glow transition-all"
> >
<Linkedin className="w-5 h-5" /> <Linkedin className="w-5 h-5" />
</Link> </a>
)} )}
</div> </div>
</div> </div>
-3
View File
@@ -77,7 +77,6 @@ export default function Projects() {
<div className="min-h-screen bg-background text-foreground antialiased selection:bg-primary/20"> <div className="min-h-screen bg-background text-foreground antialiased selection:bg-primary/20">
<section className="pt-32 pb-12 relative overflow-hidden border-b border-border/40"> <section className="pt-32 pb-12 relative overflow-hidden border-b border-border/40">
<div className="container mx-auto px-4 sm:px-6 lg:px-8 relative z-10"> <div className="container mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
{/* Back Arrow Wrapper - Kept clean on left side */} {/* Back Arrow Wrapper - Kept clean on left side */}
<motion.div <motion.div
initial={{ opacity: 0, x: shouldReduceMotion ? 0 : -10 }} initial={{ opacity: 0, x: shouldReduceMotion ? 0 : -10 }}
@@ -98,7 +97,6 @@ export default function Projects() {
</Button> </Button>
</motion.div> </motion.div>
{/* Core Header Content Module - Flex-centered alignment */}
<div className="w-full flex flex-col items-center justify-center text-center"> <div className="w-full flex flex-col items-center justify-center text-center">
<div className="max-w-3xl mb-12"> <div className="max-w-3xl mb-12">
<motion.h1 <motion.h1
@@ -166,7 +164,6 @@ export default function Projects() {
</div> </div>
</motion.div> </motion.div>
</div> </div>
</div> </div>
</section> </section>