diff --git a/frontend/app/src/App.css b/frontend/app/src/App.css index 0ea3b83..28e9f35 100644 --- a/frontend/app/src/App.css +++ b/frontend/app/src/App.css @@ -3,6 +3,7 @@ body { color: #fff; font-family: "Comfortaa", sans-serif; background-image: linear-gradient(to bottom, #020917, #101725); + background-color: #001529 } .content { diff --git a/frontend/app/src/components/HeaderComponent.tsx b/frontend/app/src/components/HeaderComponent.tsx index da3e585..1b20934 100644 --- a/frontend/app/src/components/HeaderComponent.tsx +++ b/frontend/app/src/components/HeaderComponent.tsx @@ -1,14 +1,15 @@ import { DesktopOutlined, + GlobalOutlined, LogoutOutlined, SettingOutlined, UserOutlined, } from "@ant-design/icons"; -import { Layout, Menu, MenuProps, Popover } from "antd"; +import { Layout, Menu, MenuProps, Popover, Select } from "antd"; import React, { useState } from "react"; import AuthModal from "./AuthModal"; import "./styles.css"; -import { StorePrototype, logOut, store } from "../config/store"; +import { StorePrototype, logOut, setLanguage, store } from "../config/store"; import { useSelector } from "react-redux"; import tr from "../config/translation"; import { Link, useNavigate } from "react-router-dom"; @@ -23,11 +24,34 @@ const HeaderComponent = () => { const [authModalOpen, setAuthModalOpen] = useState(false); const [userMenuOpen, setUserMenuOpen] = useState(false); + const [languageSelectOpen, setLanguageSelectOpen] = useState(false); + const currentLanguage = useSelector( + (state: StorePrototype) => state.settings.language + ); const user: NullableUser = useSelector( (state: StorePrototype) => state.auth.user ); + const languageSelectItems: MenuProps["items"] = [ + { + label: "English", + key: "en", + onClick: () => { + store.dispatch(setLanguage("en")); + window.location.reload(); + }, + }, + { + label: "Русский", + key: "ru", + onClick: () => { + store.dispatch(setLanguage("ru")); + window.location.reload(); + }, + }, + ]; + const userMenuItems: MenuProps["items"] = [ { label: {tr("Settings")}, @@ -59,6 +83,28 @@ const HeaderComponent = () => { icon: , disabled: !user, }, + { + label: ( + setLanguageSelectOpen(isOpen)} + content={ + + } + > + {tr("Language")} + + ), + key: "language", + icon: , + onClick: () => setLanguageSelectOpen(true), + }, { label: user ? (