└── LastDaysPicker.jsx /LastDaysPicker.jsx: -------------------------------------------------------------------------------- 1 | import { useMemo, useState } from 'react'; 2 | import classes from './LastDaysPicker.module.css'; 3 | 4 | const LastDaysPicker = ({ 5 | values, 6 | leftText, 7 | rightText, 8 | defaultValue, 9 | forwardedRef, 10 | onChange, 11 | containerClassName 12 | }) => { 13 | const valuesList = useMemo( 14 | () => (Array.isArray(values) ? values : [30, 60, 90, 180]), 15 | [values] 16 | ); 17 | const firstValue = useMemo( 18 | () => (defaultValue !== undefined ? defaultValue : 30), 19 | [defaultValue] 20 | ); 21 | const [days, setDaysSelector] = useState(firstValue); 22 | 23 | const setDays = (e) => { 24 | let value = +e.target.textContent; 25 | if (isNaN(value)) { 26 | value = e.target.textContent; 27 | } 28 | onChange(value); 29 | setDaysSelector(value); 30 | }; 31 | 32 | return ( 33 |