UNPKG

@nayan-ui/react-native

Version:

React Native Component Library for smooth and faster mobile application development.

55 lines (54 loc) 1.65 kB
"use strict"; import React, { useMemo } from 'react'; import { NText } from "./NText.js"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./ui/accordion.js"; import { cn } from "../lib/utils.js"; import { jsx as _jsx, jsxs as _jsxs } from "react-native-css-interop/jsx-runtime"; export const NAccordion = /*#__PURE__*/React.memo(({ items, multiple = false, defaultValue, className, itemClassName, titleClassName, contentClassName }) => { const processedItems = useMemo(() => items.map((item, index) => ({ ...item, id: item.id || `item-${index}` })), [items]); const accordionProps = useMemo(() => ({ className: cn('w-full', className), ...(multiple ? { type: 'multiple', defaultValue: defaultValue || [] } : { type: 'single', collapsible: true, defaultValue: defaultValue?.[0] }) }), [multiple, defaultValue, className]); return _jsx(Accordion, { ...accordionProps, children: processedItems.map(item => _jsxs(AccordionItem, { value: item.id, disabled: item.disabled, className: itemClassName, children: [_jsx(AccordionTrigger, { className: "px-4 py-3", children: _jsx(NText, { className: cn('text-lg font-medium', titleClassName), children: item.title }) }), _jsx(AccordionContent, { className: "px-4 pb-3", children: _jsx(NText, { className: cn('text-muted', contentClassName), children: item.content }) })] }, item.id)) }); }); NAccordion.displayName = 'NAccordion'; //# sourceMappingURL=NAccordion.js.map