redux-devtools/packages/redux-devtools-ui/src/Form/widgets.tsx
renovate[bot] 922985f9ea
chore(deps): update dependency prettier to v3 (#1434)
* chore(deps): update dependency prettier to v3

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nathan Bierema <nbierema@gmail.com>
2023-07-12 18:03:20 +00:00

50 lines
1.1 KiB
TypeScript

import React from 'react';
import { FieldProps, Widget, WidgetProps } from '@rjsf/core';
import Select from '../Select';
import Slider from '../Slider';
/* eslint-disable react/prop-types */
const SelectWidget: Widget = ({
options,
onChange,
value,
onBlur,
defaultValue,
tabIndex,
onFocus,
'aria-invalid': ariaInvalid,
...rest
}) => (
<Select<{ label: string; value: string }>
options={options.enumOptions as { label: string; value: string }[]}
onChange={(option) => {
onChange(option?.value);
}}
value={(options.enumOptions as { label: string; value: string }[]).find(
(option) => option.value === value,
)}
{...rest}
/>
);
const RangeWidget: Widget = (({
schema,
disabled,
label, // eslint-disable-line
options, // eslint-disable-line
formContext, // eslint-disable-line
registry, // eslint-disable-line
...rest
}: WidgetProps & { registry: FieldProps['registry'] }) =>
(
<Slider
{...rest}
disabled={disabled}
min={schema.minimum}
max={schema.maximum}
withValue
/>
) as unknown) as Widget;
export default { SelectWidget, RangeWidget };