diff options
author | 2020-11-27 00:38:22 +0100 | |
---|---|---|
committer | 2020-11-27 00:38:22 +0100 | |
commit | 5bc2917e78c133cd8966a65aa200588eb6d7c0d6 (patch) | |
tree | 1ab1f1837932b45092a7207af99c3a6cefed5e73 /client/src | |
parent | f2fcc41cb17ece1fc5acf57809c5e3d61c236133 (diff) | |
download | website_creator-5bc2917e78c133cd8966a65aa200588eb6d7c0d6.tar.gz website_creator-5bc2917e78c133cd8966a65aa200588eb6d7c0d6.tar.bz2 website_creator-5bc2917e78c133cd8966a65aa200588eb6d7c0d6.zip |
save language in login & admin apps
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/admin/api/index.js | 3 | ||||
-rw-r--r-- | client/src/admin/api/logout.js | 1 | ||||
-rw-r--r-- | client/src/admin/api/setDbLang.js | 10 | ||||
-rw-r--r-- | client/src/admin/jsx/App.jsx | 9 | ||||
-rw-r--r-- | client/src/login/jsx/App.jsx | 21 | ||||
-rw-r--r-- | client/src/login/jsx/LoginPanel.jsx | 2 |
6 files changed, 35 insertions, 11 deletions
diff --git a/client/src/admin/api/index.js b/client/src/admin/api/index.js index 5b4f9dc..35049a3 100644 --- a/client/src/admin/api/index.js +++ b/client/src/admin/api/index.js @@ -1,4 +1,5 @@ import getUser from './getUser'; import logout from './logout'; +import setDbLang from './setDbLang'; -export { getUser, logout }; +export { getUser, logout, setDbLang }; diff --git a/client/src/admin/api/logout.js b/client/src/admin/api/logout.js index 76137da..b0a9841 100644 --- a/client/src/admin/api/logout.js +++ b/client/src/admin/api/logout.js @@ -3,6 +3,5 @@ export default () => ( method: 'POST', }) .then(() => window.location.href = "/") - .then(() => console.log('it will logout')) .catch(() => {}) ); diff --git a/client/src/admin/api/setDbLang.js b/client/src/admin/api/setDbLang.js new file mode 100644 index 0000000..e48f6d1 --- /dev/null +++ b/client/src/admin/api/setDbLang.js @@ -0,0 +1,10 @@ +export default (language) => ( + fetch('/api/user/language', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ language }), + }) + .catch(() => {}) +); diff --git a/client/src/admin/jsx/App.jsx b/client/src/admin/jsx/App.jsx index 3a4da84..1bb224f 100644 --- a/client/src/admin/jsx/App.jsx +++ b/client/src/admin/jsx/App.jsx @@ -8,7 +8,7 @@ import Info from './Info.jsx'; import MainScreen from './MainScreen.jsx'; import Context from '../context'; import { defaultLanguage } from '../data/translations'; -import { getUser } from '../api'; +import { getUser, setDbLang } from '../api'; const App = () => { const [lang, setLang] = useState(defaultLanguage); @@ -18,6 +18,11 @@ const App = () => { const [view, setView] = useState('main'); const [user, setUser] = useState(null); + const setLangWithDb = (key) => { + setLang(key) + setDbLang(key); + }; + useEffect(() => { getUser(setUser); setInfo('no-saved-websites'); @@ -30,7 +35,7 @@ const App = () => { return ( <Context.Provider value={{ lang, setHover, setInfo }}> <div className="main"> - <TopBar lang={lang} setLang={setLang} user={user} setUser={setUser} /> + <TopBar lang={lang} setLang={setLangWithDb} user={user} setUser={setUser} /> <div className="main__content"> { view === 'main' && <MainScreen projects={projects} /> } </div> diff --git a/client/src/login/jsx/App.jsx b/client/src/login/jsx/App.jsx index e33e6c2..58256a8 100644 --- a/client/src/login/jsx/App.jsx +++ b/client/src/login/jsx/App.jsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import ReactDOM from 'react-dom'; import "../scss/index.scss"; @@ -13,18 +13,27 @@ const App = () => { const [lang, setLang] = useState(defaultLanguage); const [info, setInfo] = useState('login-info'); const [hover, setHover] = useState(''); - const [user, setUser] = useState(null); + + const setLangHelper = (key) => { + setLang(key); + localStorage.setItem('language', key); + } + + useEffect(() => { + const savedLang = localStorage.getItem('language'); + if (savedLang) { + setLang(savedLang); + } + }, []) return ( <Context.Provider value={{ lang, setHover, setInfo }}> <div className="main"> <TopBar lang={lang} - setLang={setLang} - /> - <LoginPanel - setUser={setUser} + setLang={setLangHelper} /> + <LoginPanel/> <Info info={info} hover={hover} diff --git a/client/src/login/jsx/LoginPanel.jsx b/client/src/login/jsx/LoginPanel.jsx index 96b118f..c84e843 100644 --- a/client/src/login/jsx/LoginPanel.jsx +++ b/client/src/login/jsx/LoginPanel.jsx @@ -2,7 +2,7 @@ import React, {useState, useEffect, useContext} from 'react'; import login from '../api/login'; import { t } from '../../admin/hocs'; -const LoginPanel = ({setUser}) => { +const LoginPanel = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [active, setActive] = useState(false); |