import React from 'react';
import type {SelectProps} from '@gravity-ui/uikit';
import {ArrowToggle, Button, Flex, Select, Text} from '@gravity-ui/uikit';
import {cn} from '../../../../../../utils/cn';
import type {UnitOptionsType} from './constants';
import './SplitUnitSelect.scss';
const b = cn('split-unit-select');
interface SplitUnitSelectProps {
value: string;
options: UnitOptionsType;
width?: number;
size?: SelectProps['size'];
onChange: (nextValue: string) => void;
}
export function SplitUnitSelect({
value,
options,
width = 55,
size = 's',
onChange,
}: SplitUnitSelectProps) {
const [isOpen, setIsOpen] = React.useState(false);
const selected = React.useMemo(
() => options.find((option) => option.value === value),
[options, value],
);
const selectedLabel = selected?.content ?? value;
const handleOpenChange = React.useCallback((nextOpen: boolean) => {
setIsOpen(nextOpen);
}, []);
const handleToggleOpen = React.useCallback(() => {
setIsOpen((open) => !open);
}, []);
const renderControl: SelectProps['renderControl'] = React.useCallback(
() => (
),
[handleToggleOpen, selectedLabel, size],
);
return (