diff --git a/src/components/Form/Settings/Checkbox/Checkbox.jsx b/src/components/Form/Settings/Checkbox/Checkbox.jsx index 952f5b0d..6c5b2626 100644 --- a/src/components/Form/Settings/Checkbox/Checkbox.jsx +++ b/src/components/Form/Settings/Checkbox/Checkbox.jsx @@ -1,61 +1,64 @@ import variables from 'config/variables'; -import { PureComponent } from 'react'; -import { Checkbox as CheckboxUI, FormControlLabel } from '@mui/material'; - +import { useEffect, useState } from 'react'; +import { Checkbox as CheckboxUI, Field, Label } from '@headlessui/react'; import EventBus from 'utils/eventbus'; -class Checkbox extends PureComponent { - constructor(props) { - super(props); - this.state = { - checked: localStorage.getItem(this.props.name) === 'true', - }; - } +const Checkbox = (props) => { + const [checked, setChecked] = useState(localStorage.getItem(props.name) === 'true'); - handleChange = () => { - const value = this.state.checked !== true; - localStorage.setItem(this.props.name, value); + useEffect(() => { + setChecked(localStorage.getItem(props.name) === 'true'); + }, [props.name]); - this.setState({ - checked: value, - }); + const handleChange = () => { + const value = !checked; + localStorage.setItem(props.name, value.toString()); - if (this.props.onChange) { - this.props.onChange(value); + setChecked(value); + + if (props.onChange) { + props.onChange(value); } variables.stats.postEvent( 'setting', - `${this.props.name} ${this.state.checked === true ? 'enabled' : 'disabled'}`, + `${props.name} ${value ? 'enabled' : 'disabled'}`, ); - if (this.props.element) { - if (!document.querySelector(this.props.element)) { + if (props.element) { + if (!document.querySelector(props.element)) { document.querySelector('.reminder-info').style.display = 'flex'; - return localStorage.setItem('showReminder', true); + localStorage.setItem('showReminder', 'true'); } } - EventBus.emit('refresh', this.props.category); + EventBus.emit('refresh', props.category); }; - render() { - return ( - + + + - } - label={this.props.text} - /> - ); - } -} + + + + + ); +}; -export { Checkbox as default, Checkbox }; +export { Checkbox as default, Checkbox }; \ No newline at end of file