From 5bc2917e78c133cd8966a65aa200588eb6d7c0d6 Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Fri, 27 Nov 2020 00:38:22 +0100 Subject: save language in login & admin apps --- client/src/admin/api/index.js | 3 ++- client/src/admin/api/logout.js | 1 - client/src/admin/api/setDbLang.js | 10 ++++++++++ client/src/admin/jsx/App.jsx | 9 +++++++-- client/src/login/jsx/App.jsx | 21 +++++++++++++++------ client/src/login/jsx/LoginPanel.jsx | 2 +- 6 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 client/src/admin/api/setDbLang.js (limited to 'client/src') 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 (
- +
{ view === 'main' && }
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 (
- + { +const LoginPanel = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [active, setActive] = useState(false); -- cgit v1.2.3