summaryrefslogtreecommitdiffstats
path: root/client/src
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-27 00:38:22 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-27 00:38:22 +0100
commit5bc2917e78c133cd8966a65aa200588eb6d7c0d6 (patch)
tree1ab1f1837932b45092a7207af99c3a6cefed5e73 /client/src
parentf2fcc41cb17ece1fc5acf57809c5e3d61c236133 (diff)
downloadwebsite_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.js3
-rw-r--r--client/src/admin/api/logout.js1
-rw-r--r--client/src/admin/api/setDbLang.js10
-rw-r--r--client/src/admin/jsx/App.jsx9
-rw-r--r--client/src/login/jsx/App.jsx21
-rw-r--r--client/src/login/jsx/LoginPanel.jsx2
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);