import React from 'react'; import type {Value} from '@gravity-ui/date-components'; import {RelativeDatePicker} from '@gravity-ui/date-components'; import {dateTimeParse} from '@gravity-ui/date-utils'; import {CircleChevronDownFill} from '@gravity-ui/icons'; import { ActionTooltip, Button, Flex, Icon, SegmentedRadioGroup, Select, Text, } from '@gravity-ui/uikit'; import {isNil} from 'lodash'; import {DebouncedNumberInput} from '../../../../../components/DebouncedInput/DebouncedNumerInput'; import type {PreparedPartitionData} from '../../../../../store/reducers/partitions/types'; import {formatNumber} from '../../../../../utils/dataFormatters/dataFormatters'; import {prepareErrorMessage} from '../../../../../utils/prepareErrorMessage'; import {safeParseNumber} from '../../../../../utils/utils'; import i18n from '../i18n'; import {useTopicDataQueryParams} from '../useTopicDataQueryParams'; import {b} from '../utils/constants'; import {TopicDataFilterValues} from '../utils/types'; import type {TopicDataFilterValue} from '../utils/types'; interface TopicDataControlsProps { partitions?: PreparedPartitionData[]; partitionsLoading: boolean; partitionsError: unknown; startOffset?: number; endOffset?: number; scrollToOffset: (offset: number) => void; handlePartitionChange?: (value: string[]) => void; } export function TopicDataControls({ handlePartitionChange, startOffset, endOffset, partitions, partitionsLoading, partitionsError, scrollToOffset, }: TopicDataControlsProps) { const {selectedPartition} = useTopicDataQueryParams(); const partitionsToSelect = partitions?.map(({partitionId}) => ({ content: String(partitionId), value: String(partitionId), })); return (