add frequently-asked-questions

This commit is contained in:
smanylov
2026-03-10 15:03:36 +07:00
parent 98f0571d1f
commit 5bc74d874c
3 changed files with 234 additions and 24 deletions
+51
View File
@@ -0,0 +1,51 @@
'use client'
import { ReactNode, useEffect, useRef, useState } from 'react';
interface FaqItemProps {
question: string;
children?: ReactNode | null;
}
export default function FaqItem({ question, children }: FaqItemProps) {
const [isOpen, setIsOpen] = useState(false);
const [height, setHeight] = useState(0);
const contentRef = useRef<HTMLDivElement>(null);
useEffect(() => {
if (contentRef.current) {
const scrollHeight = contentRef.current.scrollHeight;
if (isOpen) {
setHeight(scrollHeight);
} else {
setHeight(0);
}
}
}, [isOpen]);
function toggleHandler() {
setIsOpen(!isOpen);
}
return (
<div className="faq-item">
<div className="faq-question" onClick={toggleHandler}>
<span>{question}</span>
<div className="faq-toggle">
<svg className={`dropdown-arrow ${isOpen? 'expanded' : ''}`} viewBox="0 0 24 24" fill="currentColor">
<path d="M7 10l5 -5 5 5z"></path>
</svg>
</div>
</div>
<div
className="faq-answer"
style={{ height: `${height}px` }}
>
<div ref={contentRef}>
{children}
</div>
</div>
</div>
);
}