diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/admin/out.js | 20 | ||||
-rw-r--r-- | client/login/out.js | 22 | ||||
-rw-r--r-- | client/public/out.js | 2 | ||||
-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 |
9 files changed, 69 insertions, 21 deletions
diff --git a/client/admin/out.js b/client/admin/out.js index 2c675d3..54b11ef 100644 --- a/client/admin/out.js +++ b/client/admin/out.js @@ -102,11 +102,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /*!***************************************!*\ !*** ./client/src/admin/api/index.js ***! \***************************************/ -/*! exports provided: getUser, logout */ +/*! exports provided: getUser, logout, setDbLang */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getUser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getUser */ \"./client/src/admin/api/getUser.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getUser\", function() { return _getUser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _logout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logout */ \"./client/src/admin/api/logout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logout\", function() { return _logout__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./client/src/admin/api/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getUser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getUser */ \"./client/src/admin/api/getUser.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getUser\", function() { return _getUser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _logout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logout */ \"./client/src/admin/api/logout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logout\", function() { return _logout__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _setDbLang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./setDbLang */ \"./client/src/admin/api/setDbLang.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setDbLang\", function() { return _setDbLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./client/src/admin/api/index.js?"); /***/ }), @@ -118,7 +118,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _get /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => (\n fetch('/api/user/logout', {\n method: 'POST',\n })\n .then(() => window.location.href = \"/\")\n .then(() => console.log('it will logout'))\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/logout.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => (\n fetch('/api/user/logout', {\n method: 'POST',\n })\n .then(() => window.location.href = \"/\")\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/logout.js?"); + +/***/ }), + +/***/ "./client/src/admin/api/setDbLang.js": +/*!*******************************************!*\ + !*** ./client/src/admin/api/setDbLang.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ((language) => (\n fetch('/api/user/language', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ language }),\n })\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/setDbLang.js?"); /***/ }), @@ -190,7 +202,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Wit /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n__webpack_require__(/*! ../scss/index.scss */ \"./client/src/admin/scss/index.scss\");\n\nvar _TopBar = __webpack_require__(/*! ./TopBar.jsx */ \"./client/src/admin/jsx/TopBar.jsx\");\n\nvar _TopBar2 = _interopRequireDefault(_TopBar);\n\nvar _Info = __webpack_require__(/*! ./Info.jsx */ \"./client/src/admin/jsx/Info.jsx\");\n\nvar _Info2 = _interopRequireDefault(_Info);\n\nvar _MainScreen = __webpack_require__(/*! ./MainScreen.jsx */ \"./client/src/admin/jsx/MainScreen.jsx\");\n\nvar _MainScreen2 = _interopRequireDefault(_MainScreen);\n\nvar _context = __webpack_require__(/*! ../context */ \"./client/src/admin/context/index.js\");\n\nvar _context2 = _interopRequireDefault(_context);\n\nvar _translations = __webpack_require__(/*! ../data/translations */ \"./client/src/admin/data/translations.js\");\n\nvar _api = __webpack_require__(/*! ../api */ \"./client/src/admin/api/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n var _useState = (0, _react.useState)(_translations.defaultLanguage),\n _useState2 = _slicedToArray(_useState, 2),\n lang = _useState2[0],\n setLang = _useState2[1];\n\n var _useState3 = (0, _react.useState)([]),\n _useState4 = _slicedToArray(_useState3, 2),\n projects = _useState4[0],\n setProjects = _useState4[1];\n\n var _useState5 = (0, _react.useState)(''),\n _useState6 = _slicedToArray(_useState5, 2),\n info = _useState6[0],\n setInfo = _useState6[1];\n\n var _useState7 = (0, _react.useState)(''),\n _useState8 = _slicedToArray(_useState7, 2),\n hover = _useState8[0],\n setHover = _useState8[1];\n\n var _useState9 = (0, _react.useState)('main'),\n _useState10 = _slicedToArray(_useState9, 2),\n view = _useState10[0],\n setView = _useState10[1];\n\n var _useState11 = (0, _react.useState)(null),\n _useState12 = _slicedToArray(_useState11, 2),\n user = _useState12[0],\n setUser = _useState12[1];\n\n (0, _react.useEffect)(function () {\n (0, _api.getUser)(setUser);\n setInfo('no-saved-websites');\n }, []);\n\n (0, _react.useEffect)(function () {\n user && setLang(user.language);\n }, [user]);\n\n return _react2.default.createElement(\n _context2.default.Provider,\n { value: { lang: lang, setHover: setHover, setInfo: setInfo } },\n _react2.default.createElement(\n 'div',\n { className: 'main' },\n _react2.default.createElement(_TopBar2.default, { lang: lang, setLang: setLang, user: user, setUser: setUser }),\n _react2.default.createElement(\n 'div',\n { className: 'main__content' },\n view === 'main' && _react2.default.createElement(_MainScreen2.default, { projects: projects })\n ),\n _react2.default.createElement(_Info2.default, { info: info, hover: hover })\n )\n );\n};\n\n_reactDom2.default.render(_react2.default.createElement(App, null), document.getElementById('app'));\n\n//# sourceURL=webpack:///./client/src/admin/jsx/App.jsx?"); +eval("\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n__webpack_require__(/*! ../scss/index.scss */ \"./client/src/admin/scss/index.scss\");\n\nvar _TopBar = __webpack_require__(/*! ./TopBar.jsx */ \"./client/src/admin/jsx/TopBar.jsx\");\n\nvar _TopBar2 = _interopRequireDefault(_TopBar);\n\nvar _Info = __webpack_require__(/*! ./Info.jsx */ \"./client/src/admin/jsx/Info.jsx\");\n\nvar _Info2 = _interopRequireDefault(_Info);\n\nvar _MainScreen = __webpack_require__(/*! ./MainScreen.jsx */ \"./client/src/admin/jsx/MainScreen.jsx\");\n\nvar _MainScreen2 = _interopRequireDefault(_MainScreen);\n\nvar _context = __webpack_require__(/*! ../context */ \"./client/src/admin/context/index.js\");\n\nvar _context2 = _interopRequireDefault(_context);\n\nvar _translations = __webpack_require__(/*! ../data/translations */ \"./client/src/admin/data/translations.js\");\n\nvar _api = __webpack_require__(/*! ../api */ \"./client/src/admin/api/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n var _useState = (0, _react.useState)(_translations.defaultLanguage),\n _useState2 = _slicedToArray(_useState, 2),\n lang = _useState2[0],\n setLang = _useState2[1];\n\n var _useState3 = (0, _react.useState)([]),\n _useState4 = _slicedToArray(_useState3, 2),\n projects = _useState4[0],\n setProjects = _useState4[1];\n\n var _useState5 = (0, _react.useState)(''),\n _useState6 = _slicedToArray(_useState5, 2),\n info = _useState6[0],\n setInfo = _useState6[1];\n\n var _useState7 = (0, _react.useState)(''),\n _useState8 = _slicedToArray(_useState7, 2),\n hover = _useState8[0],\n setHover = _useState8[1];\n\n var _useState9 = (0, _react.useState)('main'),\n _useState10 = _slicedToArray(_useState9, 2),\n view = _useState10[0],\n setView = _useState10[1];\n\n var _useState11 = (0, _react.useState)(null),\n _useState12 = _slicedToArray(_useState11, 2),\n user = _useState12[0],\n setUser = _useState12[1];\n\n var setLangWithDb = function setLangWithDb(key) {\n setLang(key);\n (0, _api.setDbLang)(key);\n };\n\n (0, _react.useEffect)(function () {\n (0, _api.getUser)(setUser);\n setInfo('no-saved-websites');\n }, []);\n\n (0, _react.useEffect)(function () {\n user && setLang(user.language);\n }, [user]);\n\n return _react2.default.createElement(\n _context2.default.Provider,\n { value: { lang: lang, setHover: setHover, setInfo: setInfo } },\n _react2.default.createElement(\n 'div',\n { className: 'main' },\n _react2.default.createElement(_TopBar2.default, { lang: lang, setLang: setLangWithDb, user: user, setUser: setUser }),\n _react2.default.createElement(\n 'div',\n { className: 'main__content' },\n view === 'main' && _react2.default.createElement(_MainScreen2.default, { projects: projects })\n ),\n _react2.default.createElement(_Info2.default, { info: info, hover: hover })\n )\n );\n};\n\n_reactDom2.default.render(_react2.default.createElement(App, null), document.getElementById('app'));\n\n//# sourceURL=webpack:///./client/src/admin/jsx/App.jsx?"); /***/ }), diff --git a/client/login/out.js b/client/login/out.js index b491bc3..5975d1e 100644 --- a/client/login/out.js +++ b/client/login/out.js @@ -102,11 +102,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /*!***************************************!*\ !*** ./client/src/admin/api/index.js ***! \***************************************/ -/*! exports provided: getUser, logout */ +/*! exports provided: getUser, logout, setDbLang */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getUser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getUser */ \"./client/src/admin/api/getUser.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getUser\", function() { return _getUser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _logout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logout */ \"./client/src/admin/api/logout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logout\", function() { return _logout__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./client/src/admin/api/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getUser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getUser */ \"./client/src/admin/api/getUser.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getUser\", function() { return _getUser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _logout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logout */ \"./client/src/admin/api/logout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logout\", function() { return _logout__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _setDbLang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./setDbLang */ \"./client/src/admin/api/setDbLang.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setDbLang\", function() { return _setDbLang__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./client/src/admin/api/index.js?"); /***/ }), @@ -118,7 +118,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _get /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => (\n fetch('/api/user/logout', {\n method: 'POST',\n })\n .then(() => window.location.href = \"/\")\n .then(() => console.log('it will logout'))\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/logout.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => (\n fetch('/api/user/logout', {\n method: 'POST',\n })\n .then(() => window.location.href = \"/\")\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/logout.js?"); + +/***/ }), + +/***/ "./client/src/admin/api/setDbLang.js": +/*!*******************************************!*\ + !*** ./client/src/admin/api/setDbLang.js ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ((language) => (\n fetch('/api/user/language', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ language }),\n })\n .catch(() => {})\n));\n\n\n//# sourceURL=webpack:///./client/src/admin/api/setDbLang.js?"); /***/ }), @@ -250,7 +262,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n__webpack_require__(/*! ../scss/index.scss */ \"./client/src/login/scss/index.scss\");\n\nvar _TopBar = __webpack_require__(/*! ../../admin/jsx/TopBar.jsx */ \"./client/src/admin/jsx/TopBar.jsx\");\n\nvar _TopBar2 = _interopRequireDefault(_TopBar);\n\nvar _Info = __webpack_require__(/*! ../../admin/jsx/Info.jsx */ \"./client/src/admin/jsx/Info.jsx\");\n\nvar _Info2 = _interopRequireDefault(_Info);\n\nvar _LoginPanel = __webpack_require__(/*! ./LoginPanel.jsx */ \"./client/src/login/jsx/LoginPanel.jsx\");\n\nvar _LoginPanel2 = _interopRequireDefault(_LoginPanel);\n\nvar _context = __webpack_require__(/*! ../../admin/context */ \"./client/src/admin/context/index.js\");\n\nvar _context2 = _interopRequireDefault(_context);\n\nvar _translations = __webpack_require__(/*! ../../admin/data/translations */ \"./client/src/admin/data/translations.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n var _useState = (0, _react.useState)(_translations.defaultLanguage),\n _useState2 = _slicedToArray(_useState, 2),\n lang = _useState2[0],\n setLang = _useState2[1];\n\n var _useState3 = (0, _react.useState)('login-info'),\n _useState4 = _slicedToArray(_useState3, 2),\n info = _useState4[0],\n setInfo = _useState4[1];\n\n var _useState5 = (0, _react.useState)(''),\n _useState6 = _slicedToArray(_useState5, 2),\n hover = _useState6[0],\n setHover = _useState6[1];\n\n var _useState7 = (0, _react.useState)(null),\n _useState8 = _slicedToArray(_useState7, 2),\n user = _useState8[0],\n setUser = _useState8[1];\n\n return _react2.default.createElement(\n _context2.default.Provider,\n { value: { lang: lang, setHover: setHover, setInfo: setInfo } },\n _react2.default.createElement(\n 'div',\n { className: 'main' },\n _react2.default.createElement(_TopBar2.default, {\n lang: lang,\n setLang: setLang\n }),\n _react2.default.createElement(_LoginPanel2.default, {\n setUser: setUser\n }),\n _react2.default.createElement(_Info2.default, {\n info: info,\n hover: hover\n })\n )\n );\n};\n\n_reactDom2.default.render(_react2.default.createElement(App, null), document.getElementById('app'));\n\n//# sourceURL=webpack:///./client/src/login/jsx/App.jsx?"); +eval("\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n__webpack_require__(/*! ../scss/index.scss */ \"./client/src/login/scss/index.scss\");\n\nvar _TopBar = __webpack_require__(/*! ../../admin/jsx/TopBar.jsx */ \"./client/src/admin/jsx/TopBar.jsx\");\n\nvar _TopBar2 = _interopRequireDefault(_TopBar);\n\nvar _Info = __webpack_require__(/*! ../../admin/jsx/Info.jsx */ \"./client/src/admin/jsx/Info.jsx\");\n\nvar _Info2 = _interopRequireDefault(_Info);\n\nvar _LoginPanel = __webpack_require__(/*! ./LoginPanel.jsx */ \"./client/src/login/jsx/LoginPanel.jsx\");\n\nvar _LoginPanel2 = _interopRequireDefault(_LoginPanel);\n\nvar _context = __webpack_require__(/*! ../../admin/context */ \"./client/src/admin/context/index.js\");\n\nvar _context2 = _interopRequireDefault(_context);\n\nvar _translations = __webpack_require__(/*! ../../admin/data/translations */ \"./client/src/admin/data/translations.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar App = function App() {\n var _useState = (0, _react.useState)(_translations.defaultLanguage),\n _useState2 = _slicedToArray(_useState, 2),\n lang = _useState2[0],\n setLang = _useState2[1];\n\n var _useState3 = (0, _react.useState)('login-info'),\n _useState4 = _slicedToArray(_useState3, 2),\n info = _useState4[0],\n setInfo = _useState4[1];\n\n var _useState5 = (0, _react.useState)(''),\n _useState6 = _slicedToArray(_useState5, 2),\n hover = _useState6[0],\n setHover = _useState6[1];\n\n var setLangHelper = function setLangHelper(key) {\n setLang(key);\n localStorage.setItem('language', key);\n };\n\n (0, _react.useEffect)(function () {\n var savedLang = localStorage.getItem('language');\n if (savedLang) {\n setLang(savedLang);\n }\n }, []);\n\n return _react2.default.createElement(\n _context2.default.Provider,\n { value: { lang: lang, setHover: setHover, setInfo: setInfo } },\n _react2.default.createElement(\n 'div',\n { className: 'main' },\n _react2.default.createElement(_TopBar2.default, {\n lang: lang,\n setLang: setLangHelper\n }),\n _react2.default.createElement(_LoginPanel2.default, null),\n _react2.default.createElement(_Info2.default, {\n info: info,\n hover: hover\n })\n )\n );\n};\n\n_reactDom2.default.render(_react2.default.createElement(App, null), document.getElementById('app'));\n\n//# sourceURL=webpack:///./client/src/login/jsx/App.jsx?"); /***/ }), @@ -262,7 +274,7 @@ eval("\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { va /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _login = __webpack_require__(/*! ../api/login */ \"./client/src/login/api/login.js\");\n\nvar _login2 = _interopRequireDefault(_login);\n\nvar _hocs = __webpack_require__(/*! ../../admin/hocs */ \"./client/src/admin/hocs/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LoginPanel = function LoginPanel(_ref) {\n var setUser = _ref.setUser;\n\n var _useState = (0, _react.useState)(''),\n _useState2 = _slicedToArray(_useState, 2),\n email = _useState2[0],\n setEmail = _useState2[1];\n\n var _useState3 = (0, _react.useState)(''),\n _useState4 = _slicedToArray(_useState3, 2),\n password = _useState4[0],\n setPassword = _useState4[1];\n\n var _useState5 = (0, _react.useState)(false),\n _useState6 = _slicedToArray(_useState5, 2),\n active = _useState6[0],\n setActive = _useState6[1];\n\n (0, _react.useEffect)(function () {\n var emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n emailRegex.test(email) && password.length > 5 ? setActive(true) : setActive(false);\n }, [email, password]);\n\n var submit = function submit(e) {\n e.preventDefault();\n (0, _login2.default)({ email: email, password: password });\n };\n\n return _react2.default.createElement(\n 'div',\n { className: 'login-panel' },\n _react2.default.createElement(\n 'form',\n { className: 'login-panel__form', onSubmit: submit },\n _react2.default.createElement(\n 'p',\n { className: 'login-panel__header' },\n (0, _hocs.t)('login-to-admin')\n ),\n _react2.default.createElement(\n 'div',\n { className: 'text-input' },\n _react2.default.createElement('input', {\n onChange: function onChange(e) {\n return setEmail(e.target.value);\n },\n placeholder: (0, _hocs.t)('user'),\n id: 'admin-user-name',\n name: 'admin-user-name',\n type: 'text',\n className: 'text-input-field',\n value: email\n }),\n _react2.default.createElement(\n 'label',\n { htmlFor: 'admin-user-name', className: 'text-input-label' },\n (0, _hocs.t)('user')\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'text-input' },\n _react2.default.createElement('input', {\n onChange: function onChange(e) {\n return setPassword(e.target.value);\n },\n placeholder: (0, _hocs.t)('password'),\n id: 'admin-password',\n name: 'admin-password',\n type: 'password',\n className: 'text-input-field',\n value: password\n }),\n _react2.default.createElement(\n 'label',\n { htmlFor: 'admin-password', className: 'text-input-label' },\n (0, _hocs.t)('password')\n )\n ),\n _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('input', {\n type: 'submit',\n className: 'login-panel__button' + (active ? ' active' : ''),\n value: (0, _hocs.t)('login')\n })\n )\n )\n );\n};\n\nexports.default = LoginPanel;\n\n//# sourceURL=webpack:///./client/src/login/jsx/LoginPanel.jsx?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _login = __webpack_require__(/*! ../api/login */ \"./client/src/login/api/login.js\");\n\nvar _login2 = _interopRequireDefault(_login);\n\nvar _hocs = __webpack_require__(/*! ../../admin/hocs */ \"./client/src/admin/hocs/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LoginPanel = function LoginPanel() {\n var _useState = (0, _react.useState)(''),\n _useState2 = _slicedToArray(_useState, 2),\n email = _useState2[0],\n setEmail = _useState2[1];\n\n var _useState3 = (0, _react.useState)(''),\n _useState4 = _slicedToArray(_useState3, 2),\n password = _useState4[0],\n setPassword = _useState4[1];\n\n var _useState5 = (0, _react.useState)(false),\n _useState6 = _slicedToArray(_useState5, 2),\n active = _useState6[0],\n setActive = _useState6[1];\n\n (0, _react.useEffect)(function () {\n var emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n emailRegex.test(email) && password.length > 5 ? setActive(true) : setActive(false);\n }, [email, password]);\n\n var submit = function submit(e) {\n e.preventDefault();\n (0, _login2.default)({ email: email, password: password });\n };\n\n return _react2.default.createElement(\n 'div',\n { className: 'login-panel' },\n _react2.default.createElement(\n 'form',\n { className: 'login-panel__form', onSubmit: submit },\n _react2.default.createElement(\n 'p',\n { className: 'login-panel__header' },\n (0, _hocs.t)('login-to-admin')\n ),\n _react2.default.createElement(\n 'div',\n { className: 'text-input' },\n _react2.default.createElement('input', {\n onChange: function onChange(e) {\n return setEmail(e.target.value);\n },\n placeholder: (0, _hocs.t)('user'),\n id: 'admin-user-name',\n name: 'admin-user-name',\n type: 'text',\n className: 'text-input-field',\n value: email\n }),\n _react2.default.createElement(\n 'label',\n { htmlFor: 'admin-user-name', className: 'text-input-label' },\n (0, _hocs.t)('user')\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'text-input' },\n _react2.default.createElement('input', {\n onChange: function onChange(e) {\n return setPassword(e.target.value);\n },\n placeholder: (0, _hocs.t)('password'),\n id: 'admin-password',\n name: 'admin-password',\n type: 'password',\n className: 'text-input-field',\n value: password\n }),\n _react2.default.createElement(\n 'label',\n { htmlFor: 'admin-password', className: 'text-input-label' },\n (0, _hocs.t)('password')\n )\n ),\n _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('input', {\n type: 'submit',\n className: 'login-panel__button' + (active ? ' active' : ''),\n value: (0, _hocs.t)('login')\n })\n )\n )\n );\n};\n\nexports.default = LoginPanel;\n\n//# sourceURL=webpack:///./client/src/login/jsx/LoginPanel.jsx?"); /***/ }), diff --git a/client/public/out.js b/client/public/out.js index d987759..803aef8 100644 --- a/client/public/out.js +++ b/client/public/out.js @@ -1 +1 @@ -console.log('hello ze strony testowej'); +console.log('Here will be a result page'); 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); |