UNPKG

adwaita-web

Version:

A GTK inspired toolkit designed to build awesome web apps

40 lines (39 loc) 917 B
import React from "react"; import useControlled from "../utils/useControlled"; import { Box } from "./Box"; import { Radio } from "./Radio"; function RadioGroup({ size, compact = false, horizontal = true, value: valueProp, defaultValue, onChange, name, options }) { const isControlled = valueProp !== void 0; const [value, setValue] = useControlled(valueProp, defaultValue, onChange); return /* @__PURE__ */ React.createElement(Box, { horizontal, vertical: !horizontal, compact }, options.map((o) => /* @__PURE__ */ React.createElement(Radio, { key: o.value, size, name, value: o.value, checked: value === o.value, defaultChecked: defaultValue === o.value, label: o.label, onChange: (checked) => { if (checked) setValue(o.value); if (!isControlled && onChange) onChange(o.value); } }))); } export { RadioGroup };