57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { motion } from "framer-motion";
|
|
import {
|
|
Accordion,
|
|
AccordionContent,
|
|
AccordionItem,
|
|
AccordionTrigger,
|
|
} from "@/components/ui/accordion";
|
|
import { atsPageData } from "@/services/Constants";
|
|
|
|
|
|
|
|
// FAQ Section Component
|
|
const FaqSection: React.FC = () => {
|
|
return (
|
|
<section className="py-20 bg-white">
|
|
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
<motion.h2
|
|
initial={{ opacity: 0, y: 20 }}
|
|
whileInView={{ opacity: 1, y: 0 }}
|
|
viewport={{ once: true }}
|
|
className="text-3xl md:text-4xl font-bold text-gray-900 text-center mb-12"
|
|
>
|
|
{atsPageData.faqs.title}
|
|
</motion.h2>
|
|
|
|
<motion.div
|
|
initial={{ opacity: 0, y: 20 }}
|
|
whileInView={{ opacity: 1, y: 0 }}
|
|
viewport={{ once: true }}
|
|
transition={{ delay: 0.2 }}
|
|
>
|
|
<Accordion type="single" collapsible className="space-y-4">
|
|
{atsPageData.faqs.items.map((faq, index) => (
|
|
<AccordionItem
|
|
key={index}
|
|
value={`item-${index}`}
|
|
className="bg-white border border-gray-200 rounded-xl px-6 shadow-sm hover:shadow-md transition-shadow"
|
|
>
|
|
<AccordionTrigger className="text-lg font-semibold text-gray-900 hover:text-blue-600 py-6">
|
|
{faq.question}
|
|
</AccordionTrigger>
|
|
<AccordionContent className="text-gray-600 pb-6">
|
|
{faq.answer}
|
|
</AccordionContent>
|
|
</AccordionItem>
|
|
))}
|
|
</Accordion>
|
|
</motion.div>
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export default FaqSection |