import styles from '../styles/Settings.module.scss' import React, { useEffect } from 'react' import { close } from 'helpers/windowActions' import useUser from 'hooks/useUser' import usePopup from 'hooks/usePopup' import useSettings from 'hooks/useSettings' import useApps from 'hooks/useApps' import { saveSettings } from '../api' const Settings = () => { const { setPopup } = usePopup() const { setApps } = useApps() const { settings: { theme, language }, setSettings, t } = useSettings() const { user, mutateUser } = useUser() useEffect(() => () => { setSettings(prev => ({ ...prev, theme: user.theme, language: user.language })) close('Settings', setApps) }, [user]) const handleSave = e => { e.preventDefault() saveSettings({ _id: user._id, theme, language }) .then(() => { mutateUser({ ...user, theme, language }, false) setPopup({ content: t('settings_saved'), time: 2000 }) }) .catch(() => { setPopup({ content: t('settings_save_error'), time: 2000, error: true }) }) } return (
{t('language')}
{['en', 'pl', 'es', 'de'].map(l => ( { setSettings(prev => ({ ...prev, language: l })) }} >{l.toUpperCase()} ))}
{t('color_theme')}
{['green', 'blue', 'black'].map(c => ( { setSettings(prev => ({ ...prev, theme: c })) }} className={theme === c ? styles.settings__active : ''} /> ))}
) } export default Settings