From 4d642e312ed728ad51c454d1e2a0b7bb350fc174 Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Sun, 6 Dec 2020 23:49:13 +0100 Subject: first creator page --- client/src/admin/jsx/layout/Info.jsx | 10 +++++++ client/src/admin/jsx/layout/LangSwitch.jsx | 42 ++++++++++++++++++++++++++++++ client/src/admin/jsx/layout/TopBar.jsx | 35 +++++++++++++++++++++++++ client/src/admin/jsx/layout/UserSwitch.jsx | 39 +++++++++++++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 client/src/admin/jsx/layout/Info.jsx create mode 100644 client/src/admin/jsx/layout/LangSwitch.jsx create mode 100644 client/src/admin/jsx/layout/TopBar.jsx create mode 100644 client/src/admin/jsx/layout/UserSwitch.jsx (limited to 'client/src/admin/jsx/layout') diff --git a/client/src/admin/jsx/layout/Info.jsx b/client/src/admin/jsx/layout/Info.jsx new file mode 100644 index 0000000..0ea8686 --- /dev/null +++ b/client/src/admin/jsx/layout/Info.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { t } from '../../hocs'; + +const Info = ({ info, hover }) => ( +

+ { hover ? t(hover) : t(info) } +

+); + +export default Info; diff --git a/client/src/admin/jsx/layout/LangSwitch.jsx b/client/src/admin/jsx/layout/LangSwitch.jsx new file mode 100644 index 0000000..684d432 --- /dev/null +++ b/client/src/admin/jsx/layout/LangSwitch.jsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { WithHover } from '../../hocs'; +import { languages } from '../../data/translations.js' + +const LangSwitch = ({ lang, setLang, opened, setOpened}) => { + const handleSetLang = (key) => { + setLang(key); + setOpened(false); + }; + + return ( +
+ + setOpened(opened !== 'lang' ? 'lang' : false)} + > + {lang} + + { + opened === 'lang' && ( +
+ { + languages.map(key => key !== lang && ( + handleSetLang(key)} + > + {key} + + )) + } +
+ ) + } +
+
+ ); +}; + +export default LangSwitch; diff --git a/client/src/admin/jsx/layout/TopBar.jsx b/client/src/admin/jsx/layout/TopBar.jsx new file mode 100644 index 0000000..b6564f7 --- /dev/null +++ b/client/src/admin/jsx/layout/TopBar.jsx @@ -0,0 +1,35 @@ +import React, {useState} from 'react'; +import LangSwitch from './LangSwitch.jsx'; +import UserSwitch from './UserSwitch.jsx'; + +const TopBar = ({ user, setUser, lang, setLang }) => { + const [opened, setOpened] = useState(false); + + return ( +
+ { opened !== false && ( +
setOpened(false)} + /> + )} + + { user && ( + + ) + } +
+ ); +}; + +export default TopBar; diff --git a/client/src/admin/jsx/layout/UserSwitch.jsx b/client/src/admin/jsx/layout/UserSwitch.jsx new file mode 100644 index 0000000..403783c --- /dev/null +++ b/client/src/admin/jsx/layout/UserSwitch.jsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { WithHover, t } from '../../hocs'; +import { logout } from '../../api'; + +const User = ({ user, setUser, opened, setOpened }) => { + const handleLogout = () => { + setOpened(false); + logout(); + }; + const handleChangePass = () => { setOpened(false) }; + const handleRemoveUser = () => { setOpened(false) }; + + return ( +
+ + setOpened(opened !== 'user' ? 'user' : false)} + > + {user.email} + + { + opened === 'user' && ( +
+ + {t('logout')} + + + {t('user-settings')} + +
+ ) + } +
+
+ ); +}; + +export default User; -- cgit v1.2.3