import { forwardRef, type InputHTMLAttributes } from "react"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "~/components/ui/accordion"; import type { Faq } from "~/i18n/locales"; import { cn } from "~/lib/utils"; interface AccordionCompProps extends InputHTMLAttributes { texts: Faq[]; defaultOpen?: number; } /** * Renders an accordion component with collapsible items. * * @component * @example * ```tsx * * ``` */ export const AccordionComp = forwardRef( ({ texts, defaultOpen, className }, ref) => { if (!texts || texts.length === 0) { return null; // Return null if no texts are provided } return (
{texts.map((text, index) => ( key={`ac-item-${index}`} value={`item-${index}`} > {text.title} {text.description} ))}
); }, ); AccordionComp.displayName = "AccordionComp";