import React, { FC, memo, useMemo, ChangeEvent, ChangeEventHandler } from 'react'; import Range from 'rc-slider/lib/Range'; interface Props { ready: boolean; min: number; max: number; search: string; distance: [number, number]; onDistanceChange: (val: [number, number]) => void; onSearchChange: ChangeEventHandler; } const MapListDialogHead: FC = memo( ({ min, max, ready, distance, search, onSearchChange, onDistanceChange }) => { const marks = useMemo( () => [...new Array(Math.floor((Math.max(min, max) - Math.max(min, max)) / 25) + 1)].reduce( (obj, el, i) => ({ ...obj, [min + i * 25]: min + i * 25 < 200 ? ` ${min + i * 25}` : ` ${min + i * 25}+`, }), {} ), [max, min] ); return (
{ready && Object.keys(marks).length > 2 ? ( = max} /> ) : (
)}
); } ); export { MapListDialogHead };