refactor(consulting): reorder sections, remove Performance, testimonial-style consultants

This commit is contained in:
2026-02-20 16:51:09 +03:30
parent d0634d6683
commit 5aa0575c56
+77 -79
View File
@@ -1,7 +1,6 @@
import { AspectRatio } from '@/components/ui/aspect-ratio'
import { Button } from '@/components/ui/button'
import { Card, CardContent } from '@/components/ui/card'
import { Badge } from '@/components/ui/badge'
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
import {
Accordion,
@@ -14,11 +13,11 @@ import {
Plug2,
Sparkles,
Database,
Gauge,
Shield,
Layout,
BarChart3,
HelpCircle,
Quote,
} from 'lucide-react'
import Link from 'next/link'
@@ -65,11 +64,6 @@ const domains = [
description: 'سامانه‌های بازیابی و تولید پاسخ مبتنی بر دانش',
icon: Database,
},
{
title: 'Performance',
description: 'بهینه‌سازی عملکرد، مقیاس‌پذیری و پاسخگویی',
icon: Gauge,
},
{
title: 'امنیت',
description: 'امنیت داده، احراز هویت و کنترل دسترسی',
@@ -168,52 +162,13 @@ export default function ConsultingPage() {
</div>
</section>
{/* Section 2: مشاوران */}
<section className="bg-muted/30 py-16 md:py-24" id="consultants">
<div className="mx-auto max-w-6xl px-4 md:px-6">
<div className="mx-auto max-w-2xl text-center mb-12">
<h2 className="text-3xl font-bold md:text-4xl">چه کسانی مشاوره می‌دهند؟</h2>
<p className="mt-4 text-muted-foreground">
تیم مشاوره ما متشکل از متخصصان با تجربه در حوزه‌های مختلف فناوری است.
</p>
</div>
<div className="grid gap-8 md:grid-cols-3">
{consultants.map((person) => (
<Card key={person.fallback} className="overflow-hidden">
<CardContent className="pt-6">
<div className="flex flex-col items-center text-center space-y-4">
<Avatar className="h-24 w-24">
<AvatarImage src={person.image} alt={person.name} />
<AvatarFallback className="text-xl">{person.fallback}</AvatarFallback>
</Avatar>
<div>
<h3 className="font-bold text-lg">{person.name}</h3>
<div className="flex flex-wrap justify-center gap-1.5 mt-2">
{person.expertise.map((e) => (
<Badge key={e} variant="secondary" className="text-xs">
{e}
</Badge>
))}
</div>
</div>
<p className="text-sm text-muted-foreground leading-relaxed">
{person.description}
</p>
</div>
</CardContent>
</Card>
))}
</div>
</div>
</section>
{/* Section 3: حوزه‌های مشاوره */}
<section className="bg-background py-16 md:py-24" id="domains">
{/* Section 2: حوزه‌های مشاوره (جابجا شده با مشاوران) */}
<section className="bg-muted/30 py-16 md:py-24" id="domains">
<div className="mx-auto max-w-6xl px-4 md:px-6">
<div className="mx-auto max-w-2xl text-center mb-12">
<h2 className="text-3xl font-bold md:text-4xl">در چه حوزه‌هایی مشاوره می‌دهیم؟</h2>
<p className="mt-4 text-muted-foreground">
از اینتگریشن و هوشمندسازی تا RAG و بهینه‌سازی عملکرد
از اینتگریشن و هوشمندسازی تا RAG و معماری نرم‌افزار
</p>
</div>
<div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
@@ -241,8 +196,79 @@ export default function ConsultingPage() {
</div>
</section>
{/* Section 4: فرم درخواست مشاوره */}
<section className="bg-muted/30 py-16 md:py-24" id="consulting-form">
{/* Section 3: چه کسانی مشاوره می‌دهند؟ — سبک Testimonial */}
<section className="bg-background py-16 md:py-24" id="consultants">
<div className="mx-auto max-w-6xl px-4 md:px-6">
<div className="mx-auto max-w-2xl text-center mb-12">
<h2 className="text-3xl font-bold md:text-4xl">چه کسانی مشاوره می‌دهند؟</h2>
<p className="mt-4 text-muted-foreground">
تیم مشاوره ما متشکل از متخصصان با تجربه در حوزه‌های مختلف فناوری است.
</p>
</div>
<div className="grid gap-8 md:grid-cols-3">
{consultants.map((person) => (
<Card key={person.fallback} className="overflow-hidden border-border/60 shadow-sm">
<CardContent className="p-6 md:p-8">
<Quote className="size-10 text-primary/30 mb-4" aria-hidden />
<blockquote className="text-muted-foreground leading-relaxed mb-6">
{person.description}
</blockquote>
<div className="flex items-center gap-4">
<Avatar className="h-14 w-14 shrink-0 border-2 border-background shadow">
<AvatarImage src={person.image} alt={person.name} />
<AvatarFallback className="text-lg bg-primary/10 text-primary">
{person.fallback}
</AvatarFallback>
</Avatar>
<div>
<h3 className="font-bold text-foreground">{person.name}</h3>
<div className="flex flex-wrap gap-1.5 mt-1">
{person.expertise.map((e) => (
<span key={e} className="text-xs text-muted-foreground">
{e}
{e !== person.expertise[person.expertise.length - 1] ? ' · ' : ''}
</span>
))}
</div>
</div>
</div>
</CardContent>
</Card>
))}
</div>
</div>
</section>
{/* Section 4: سوالات متداول (جابجا شده با فرم) */}
<section className="bg-muted/30 py-16 md:py-24" id="faq">
<div className="mx-auto max-w-3xl px-4 md:px-6">
<div className="mx-auto max-w-xl text-center mb-12">
<h2 className="text-3xl font-bold md:text-4xl">سوالات متداول</h2>
<p className="mt-4 text-muted-foreground">
پاسخ سوالات رایج درباره مشاوره سازمانی
</p>
</div>
<Accordion type="single" collapsible className="w-full rounded-2xl border bg-background/80 p-1 shadow-sm">
{faqItems.map((item) => (
<AccordionItem
key={item.id}
value={item.id}
className="rounded-xl border-none px-4 data-[state=open]:bg-muted/50 data-[state=open]:shadow-sm"
>
<AccordionTrigger className="text-start hover:no-underline py-5">
{item.question}
</AccordionTrigger>
<AccordionContent>
<p className="text-muted-foreground leading-relaxed pb-2">{item.answer}</p>
</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
</section>
{/* Section 5: فرم درخواست مشاوره (جابجا شده با FAQ) */}
<section className="bg-background py-16 md:py-24" id="consulting-form">
<div className="mx-auto max-w-6xl px-4 md:px-6">
<div className="mx-auto max-w-xl">
<div className="text-center mb-10">
@@ -259,34 +285,6 @@ export default function ConsultingPage() {
</div>
</div>
</section>
{/* Section 5: سوالات متداول */}
<section className="bg-background py-16 md:py-24">
<div className="mx-auto max-w-3xl px-4 md:px-6">
<div className="mx-auto max-w-xl text-center mb-12">
<h2 className="text-3xl font-bold md:text-4xl">سوالات متداول</h2>
<p className="mt-4 text-muted-foreground">
پاسخ سوالات رایج درباره مشاوره سازمانی
</p>
</div>
<Accordion type="single" collapsible className="w-full rounded-2xl border bg-muted/30 p-1">
{faqItems.map((item) => (
<AccordionItem
key={item.id}
value={item.id}
className="rounded-xl border-none px-4 data-[state=open]:bg-card data-[state=open]:shadow-sm"
>
<AccordionTrigger className="text-start hover:no-underline py-5">
{item.question}
</AccordionTrigger>
<AccordionContent>
<p className="text-muted-foreground leading-relaxed pb-2">{item.answer}</p>
</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
</section>
</>
)
}