From 33ecc88796d3419335cb6c6a52075ea96601477d Mon Sep 17 00:00:00 2001 From: Olly Hearn Date: Tue, 9 Apr 2024 20:01:47 +0300 Subject: [PATCH] eto pizdec tovarishi --- frontend/app/src/components/AuthModal.tsx | 3 +- .../app/src/components/HeaderComponent.tsx | 30 ++++++++++--------- frontend/app/src/config/style.ts | 3 ++ frontend/app/src/slice/AuthApi.ts | 2 +- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/frontend/app/src/components/AuthModal.tsx b/frontend/app/src/components/AuthModal.tsx index 6ae2abd..eb6631e 100644 --- a/frontend/app/src/components/AuthModal.tsx +++ b/frontend/app/src/components/AuthModal.tsx @@ -3,6 +3,7 @@ import "./styles.css"; import { KeyOutlined, UserAddOutlined } from "@ant-design/icons"; import React, { useContext, useEffect, useState } from "react"; import { + TokenResponse, useGetUserQuery, useLoginMutation, useRegisterMutation, @@ -37,7 +38,7 @@ const AuthModal = (props: { loginUser(formData) .unwrap() - .then((data) => { + .then((data: TokenResponse) => { store.dispatch(updateToken(data.access_token)); }) .then(() => refetch()) diff --git a/frontend/app/src/components/HeaderComponent.tsx b/frontend/app/src/components/HeaderComponent.tsx index b91ed21..8ba67cc 100644 --- a/frontend/app/src/components/HeaderComponent.tsx +++ b/frontend/app/src/components/HeaderComponent.tsx @@ -1,5 +1,5 @@ import { LogoutOutlined, UserOutlined } from "@ant-design/icons"; -import { Button, Layout, Menu, MenuProps, Tooltip } from "antd"; +import { Button, Layout, Menu, MenuProps, Popover, Tooltip } from "antd"; import React, { useEffect, useState } from "react"; import AuthModal from "./AuthModal"; import "./styles.css"; @@ -12,30 +12,32 @@ type NullableUser = { name: string | null; username: string } | null; const HeaderComponent = () => { const [authModalOpen, setAuthModalOpen] = useState(false); + const [userMenuOpen, setUserMenuOpen] = useState(false); const user: NullableUser = useSelector( (state: StorePrototype) => state.auth.user ); - // const userMenuItems: MenuProps["userMenuItems"] = [ - // { - // label: , - // key: "logout", - // icon: , - // onClick: () => store.dispatch(logOut()), - // }, - // ] + const userMenuItems: MenuProps["userMenuItems"] = [ + { + label: "Log out", + key: "logout", + icon: , + onClick: () => store.dispatch(logOut()), + }, + ]; const items: MenuProps["items"] = [ { label: user ? ( - store.dispatch(logOut())}>Log out - } + setUserMenuOpen(isOpen)} + content={} > {user.username} - + ) : ( "Log In" ), diff --git a/frontend/app/src/config/style.ts b/frontend/app/src/config/style.ts index 90951ee..ef8f631 100644 --- a/frontend/app/src/config/style.ts +++ b/frontend/app/src/config/style.ts @@ -21,6 +21,9 @@ export const theme: ThemeConfig = { Message: { contentBg: "#001c36", }, + Popover: { + colorBgElevated: "#001c36", + }, }, token: { colorText: "#ffffff", diff --git a/frontend/app/src/slice/AuthApi.ts b/frontend/app/src/slice/AuthApi.ts index b85c436..52cb5ca 100644 --- a/frontend/app/src/slice/AuthApi.ts +++ b/frontend/app/src/slice/AuthApi.ts @@ -19,7 +19,7 @@ export interface RegisterRequest { password2: string; } -type TokenResponse = { +export type TokenResponse = { access_token: string; token_type: string; };