en-US

Support using DCompose for combination.

For more usage, please refer to DCompose.

zh-CN

支持使用 DCompose 进行组合。

更多用法请参考 DCompose

import { useState } from 'react';

import { DButton, DRadio, DCompose } from '@react-devui/ui';

export default function Demo() {
  const [_size, setSize] = useState('default');
  const [_vertical, setVertical] = useState('Horizontal');
  const [_disabled, setDisabled] = useState('No disabled');

  const size = _size === 'default' ? undefined : _size;
  const vertical = _vertical === 'Vertical';
  const disabled = _disabled === 'Disabled';

  return (
    <>
      <DRadio.Group
        dList={['smaller', 'default', 'larger'].map((size) => ({
          label: size,
          value: size,
        }))}
        dModel={_size}
        dType="outline"
        onModelChange={setSize}
      />
      <br />
      <DRadio.Group
        dList={['Horizontal', 'Vertical'].map((text) => ({
          label: text,
          value: text,
        }))}
        dModel={_vertical}
        dType="outline"
        onModelChange={setVertical}
      />
      <br />
      <DRadio.Group
        dList={['No disabled', 'Disabled'].map((text) => ({
          label: text,
          value: text,
        }))}
        dModel={_disabled}
        dType="outline"
        onModelChange={setDisabled}
      />
      <br />
      <DCompose dSize={size} dVertical={vertical} dDisabled={disabled}>
        {['L', 'M', 'R'].map((text) => (
          <DButton key={text} dType="secondary">
            {text}
          </DButton>
        ))}
      </DCompose>
      <DCompose dSize={size} dVertical={vertical} dDisabled={disabled}>
        {['L', 'M', 'R'].map((text) => (
          <DButton key={text} dType={text === 'L' ? 'primary' : 'secondary'}>
            {text}
          </DButton>
        ))}
      </DCompose>
      <DCompose dSize={size} dVertical={vertical} dDisabled={disabled}>
        {['L', 'M', 'R'].map((text) => (
          <DButton key={text} dType="secondary" dVariant={text === 'M' ? undefined : 'round'}>
            {text}
          </DButton>
        ))}
      </DCompose>
    </>
  );
}