import React, { useState, useEffect, useContext } from 'react' import openSocket from 'socket.io-client' import { makeStyles } from '@material-ui/core/styles' import Paper from '@material-ui/core/Paper' import Typography from '@material-ui/core/Typography' import Container from '@material-ui/core/Container' import Select from '@material-ui/core/Select' import { toast } from 'react-toastify' import api from '../../services/api' import { i18n } from '../../translate/i18n.js' import toastError from '../../errors/toastError' //-------- import { AuthContext } from '../../context/Auth/AuthContext' import { Can } from '../../components/Can' // import Button from "@material-ui/core/Button"; const useStyles = makeStyles((theme) => ({ root: { display: 'flex', alignItems: 'center', padding: theme.spacing(4), }, paper: { padding: theme.spacing(2), display: 'flex', alignItems: 'center', }, settingOption: { marginLeft: 'auto', }, margin: { margin: theme.spacing(1), }, })) const Settings = () => { const classes = useStyles() //-------- const { user } = useContext(AuthContext) const [settings, setSettings] = useState([]) useEffect(() => { const fetchSession = async () => { try { const { data } = await api.get('/settings') setSettings(data) } catch (err) { toastError(err) } } fetchSession() }, []) useEffect(() => { const socket = openSocket(process.env.REACT_APP_BACKEND_URL) socket.on('settings', (data) => { console.log('settings updated ----------------------------') if (data.action === 'update') { setSettings((prevState) => { const aux = [...prevState] const settingIndex = aux.findIndex((s) => s.key === data.setting.key) aux[settingIndex].value = data.setting.value return aux }) } }) return () => { socket.disconnect() } }, []) useEffect(() => { console.log('------> settings: ', settings) }, [settings]) const handleChangeSetting = async (e) => { const selectedValue = e.target.value const settingKey = e.target.name try { await api.put(`/settings/${settingKey}`, { value: selectedValue, }) toast.success(i18n.t('settings.success')) } catch (err) { toastError(err) } } const getSettingValue = (key) => { const { value } = settings.find((s) => s.key === key) return value } return ( (
{i18n.t('settings.title')} {i18n.t('settings.settings.userCreation.name')}
Editar ura
Editar fila
)} /> ) } export default Settings