import variables from 'config/variables'; import { memo, useState, useCallback } from 'react'; import { toast } from 'react-toastify'; import { Slider } from '@mui/material'; import { MdRefresh } from 'react-icons/md'; import EventBus from 'utils/eventbus'; const SliderComponent = memo((props) => { const [value, setValue] = useState(localStorage.getItem(props.name) || props.default); const handleChange = useCallback((e, text) => { let newValue = e.target.value; newValue = Number(newValue); if (text) { if (newValue === '') { setValue(0); return; } if (newValue > props.max) { newValue = props.max; } if (newValue < props.min) { newValue = props.min; } } localStorage.setItem(props.name, newValue); setValue(newValue); if (props.element) { if (!document.querySelector(props.element)) { document.querySelector('.reminder-info').style.display = 'flex'; return localStorage.setItem('showReminder', true); } } EventBus.emit('refresh', props.category); }, [props]); const resetItem = useCallback(() => { handleChange({ target: { value: props.default || '', }, }); toast(variables.getMessage('toasts.reset')); }, [handleChange, props.default]); return ( <> {props.title} {Number(value)} {variables.getMessage('modals.main.settings.buttons.reset')} `${value}`} marks={props.marks || []} /> ); }); SliderComponent.displayName = 'SliderComponent'; export { SliderComponent as default, SliderComponent as Slider };