UNPKG

@kadoui/react

Version:

Kadoui primitive components for React

34 lines (33 loc) 1.2 kB
"use client"; import { jsx as _jsx } from "react/jsx-runtime"; import { use } from "react"; import { ChoiceContext } from "./ChoiceContext"; export function ChoiceTrigger({ choiceName, onClick, ...p }) { const { multiple, activeChoice, setActiveChoice, requiredOne } = use(ChoiceContext); const isActive = multiple ? activeChoice.includes(choiceName) : activeChoice === choiceName; return (_jsx("button", { "data-state": isActive, onClick: (ev) => { onClick?.(ev); if (isActive) { if (multiple) { if (!requiredOne || activeChoice.length > 1) { setActiveChoice((prev) => prev.filter((item) => item !== choiceName)); } } else { if (!requiredOne) { setActiveChoice(null); } } } else { if (multiple) { setActiveChoice((prev) => [...prev, choiceName]); } else { setActiveChoice(choiceName); } } }, ...p })); }