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"