diff --git a/packages/app/src/layouts/components/sidebar/index.jsx b/packages/app/src/layouts/components/sidebar/index.jsx index a419391f..76fc845b 100755 --- a/packages/app/src/layouts/components/sidebar/index.jsx +++ b/packages/app/src/layouts/components/sidebar/index.jsx @@ -9,7 +9,7 @@ import Drawer from "@layouts/components/drawer" import { Icons } from "@components/Icons" -import GenerateSidebarMenuItems from "@utils/generateSidebarMenuItems" +import GenerateMenuItems from "@utils/generateMenuItems" import TopMenuItems from "@config/sidebar/TopItems" import BottomMenuItems from "@config/sidebar/BottomItems" @@ -75,8 +75,8 @@ export default class Sidebar extends React.Component { visible: false, expanded: false, - topItems: GenerateSidebarMenuItems(TopMenuItems), - bottomItems: GenerateSidebarMenuItems(BottomMenuItems), + topItems: GenerateMenuItems(TopMenuItems), + bottomItems: GenerateMenuItems(BottomMenuItems), selectedMenuItem: null, navigationRender: null, @@ -432,6 +432,6 @@ export default class Sidebar extends React.Component { - + } } \ No newline at end of file diff --git a/packages/app/src/layouts/components/sidebar/index.less b/packages/app/src/layouts/components/sidebar/index.less index 824ac027..80a3f7c6 100755 --- a/packages/app/src/layouts/components/sidebar/index.less +++ b/packages/app/src/layouts/components/sidebar/index.less @@ -172,6 +172,8 @@ } .ant-menu-item { + position: relative; + display: inline-flex; align-items: center; diff --git a/packages/app/src/pages/account/index.jsx b/packages/app/src/pages/account/index.jsx index 39e342ef..53f17c46 100755 --- a/packages/app/src/pages/account/index.jsx +++ b/packages/app/src/pages/account/index.jsx @@ -1,13 +1,14 @@ import React from "react" import * as antd from "antd" import classnames from "classnames" -import { Translation } from "react-i18next" import { motion, AnimatePresence } from "framer-motion" import { Icons } from "@components/Icons" import FollowButton from "@components/FollowButton" import UserCard from "@components/UserCard" +import GenerateMenuItems from "@utils/generateMenuItems" + import { SessionModel, UserModel, FollowsModel } from "@models" import DetailsTab from "./tabs/details" @@ -225,43 +226,29 @@ export default class Account extends React.Component { mode={app.isMobile ? "horizontal" : "vertical"} selectedKeys={[this.state.tabActiveKey]} onClick={(e) => this.handlePageTransition(e.key)} - > - } - > - - {t => t("Posts")} - - - - } - > - - {t => t("Music")} - - - - } - > - - {t => t("Followers")} - - - - } - > - - {t => t("Details")} - - - + items={GenerateMenuItems([ + { + id: "posts", + label: "Posts", + icon: "BookOpen", + }, + { + id: "music", + label: "Music", + icon: "MdAlbum", + }, + { + id: "followers", + label: "Followers", + icon: "Users", + }, + { + id: "details", + label: "Details", + icon: "Info", + } + ])} + /> diff --git a/packages/app/src/pages/account/index.less b/packages/app/src/pages/account/index.less index d9888f58..56f8f50a 100755 --- a/packages/app/src/pages/account/index.less +++ b/packages/app/src/pages/account/index.less @@ -191,7 +191,7 @@ justify-content: flex-start; - padding: 5px 10px !important; + padding: 5px 15px !important; svg { margin: 0 !important; diff --git a/packages/app/src/styles/fixments.less b/packages/app/src/styles/fixments.less index e361e72a..cc41d020 100755 --- a/packages/app/src/styles/fixments.less +++ b/packages/app/src/styles/fixments.less @@ -235,6 +235,32 @@ p { color: var(--background-color-contrast); } + + // active dash + &::before { + content: ''; + display: block; + position: absolute; + + top: auto; + left: 5px; + + transition: all 150ms ease-in-out; + + background-color: var(--colorPrimary); + + width: @menu-selected-item-dash-width; + + border-radius: @menu-selected-item-dash-border-radius; + + // by default set opacity & height to 0 + opacity: 0; + height: 0; + } + + .ant-menu-title-content { + transition: @transition-ease-inout !important; + } } } @@ -272,6 +298,12 @@ &::after { opacity: 0; } + + &::before { + opacity: 1; + + height: @menu-selected-item-dash-height; + } } .ant-menu-item:active { @@ -312,7 +344,6 @@ border-radius: 12px; outline: 1px solid var(--border-color) !important; background-color: var(--background-color-primary) !important; - } .ant-notification-notice { diff --git a/packages/app/src/styles/vars.less b/packages/app/src/styles/vars.less index 10025f96..9e5c7b89 100755 --- a/packages/app/src/styles/vars.less +++ b/packages/app/src/styles/vars.less @@ -13,6 +13,10 @@ @default-object-padding: 10px; +@menu-selected-item-dash-width: 3px; +@menu-selected-item-dash-height: 50%; +@menu-selected-item-dash-border-radius: 12px; + // Mobile @top_bar_height: 52px; @top_bar_padding: 10px; diff --git a/packages/app/src/utils/generateSidebarMenuItems/index.jsx b/packages/app/src/utils/generateMenuItems/index.jsx similarity index 95% rename from packages/app/src/utils/generateSidebarMenuItems/index.jsx rename to packages/app/src/utils/generateMenuItems/index.jsx index e25b3151..5a36728d 100644 --- a/packages/app/src/utils/generateSidebarMenuItems/index.jsx +++ b/packages/app/src/utils/generateMenuItems/index.jsx @@ -1,3 +1,5 @@ +import React from "react" + import { Translation } from "react-i18next" import { createIconRender } from "@components/Icons"