Counter

import { Counter } from '@megafon/ui-core';
Код DemoCounterWrapper
type childrenPropTypes = {
onChange: (value: number) => void;
initialValue: number;
value?: number;
}
interface IDemoCounterWrapperProps {
children: (prop: childrenPropTypes) => JSX.Element;
initialValue: number;
isControlled?: boolean;
}
export const DemoCounterWrapper: React.FC<IDemoCounterWrapperProps> = ({
isControlled,
initialValue = 0,
children,
}) => {
const [value, setValue] = React.useState(initialValue);
const childrenProps: childrenPropTypes = {
onChange: setValue,
initialValue,
};
if (isControlled) {
childrenProps.value = value;
}
return (
<div>
<p style={{ marginTop: 0 }}>Value: {value}</p>
{children(childrenProps)}
</div>
);
};

Состояния счетчика

Выбрано минимальное значение

Value: 3

Выбрано среднее значение

Value: 18

Выбрано максимальное значение

Value: 33

Контролируемое состояние

Компонент контроллируется родителем.

Value: 5

Выключенное состояние

Value: 0