create Radio
This commit is contained in:
parent
7ce486ff08
commit
6f376af9c3
31
src/client/Elements/Radio.jsx
Normal file
31
src/client/Elements/Radio.jsx
Normal file
@ -0,0 +1,31 @@
|
||||
import { Radio as AntRadio } from 'antd';
|
||||
import { useOptions } from 'client/hooks/useOptions';
|
||||
import { useStatus } from 'client/hooks/useStatus';
|
||||
import { useStoreValue } from 'client/hooks/useStoreValue';
|
||||
import { Status } from 'core/types/elements';
|
||||
import { observer } from 'mobx-react';
|
||||
import React from 'react';
|
||||
|
||||
const Radio = ({ name, buttonStyle, computedValue, valueName }) => {
|
||||
const { value, setCurrentValue } = useStoreValue({
|
||||
computedValue,
|
||||
valueName,
|
||||
});
|
||||
const { status } = useStatus(name);
|
||||
const { options } = useOptions(name);
|
||||
|
||||
return (
|
||||
<AntRadio.Group
|
||||
disabled={status === Status.Disabled}
|
||||
buttonStyle={buttonStyle}
|
||||
value={value}
|
||||
onChange={(e) => setCurrentValue(e.target.value)}
|
||||
>
|
||||
{options.map((option, i) => (
|
||||
<AntRadio.Button value={option.value}>{option.name}</AntRadio.Button>
|
||||
))}
|
||||
</AntRadio.Group>
|
||||
);
|
||||
};
|
||||
|
||||
export default observer(Radio);
|
||||
Reference in New Issue
Block a user