瀏覽代碼

feat: Let the top navigation bar open in a tab when you right click on it #3018 (#3486)

### What problem does this PR solve?

feat: Let the top navigation bar open in a tab when you right click on
it #3018

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
tags/v0.14.0
balibabu 11 月之前
父節點
當前提交
31decadd8e
No account linked to committer's email address
共有 2 個文件被更改,包括 28 次插入17 次删除
  1. 4
    1
      web/src/layouts/components/header/index.less
  2. 24
    16
      web/src/layouts/components/header/index.tsx

+ 4
- 1
web/src/layouts/components/header/index.less 查看文件

@@ -31,7 +31,7 @@
}

.radioGroup {
& > label {
& label {
height: 40px;
line-height: 40px;
border: 0 !important;
@@ -44,6 +44,9 @@
}
:global(.ant-radio-button-wrapper-checked) {
border-radius: 6px !important;
& a {
color: white;
}
}
}


+ 24
- 16
web/src/layouts/components/header/index.tsx 查看文件

@@ -6,7 +6,7 @@ import { useFetchAppConf } from '@/hooks/logic-hooks';
import { useNavigateWithFromState } from '@/hooks/route-hook';
import { MessageOutlined, SearchOutlined } from '@ant-design/icons';
import { Flex, Layout, Radio, Space, theme } from 'antd';
import { useCallback, useMemo } from 'react';
import { MouseEventHandler, useCallback, useMemo } from 'react';
import { useLocation } from 'umi';
import Toolbar from '../right-toolbar';

@@ -40,9 +40,14 @@ const RagHeader = () => {
);
}, [pathname, tagsData]);

const handleChange = (path: string) => {
navigate(path);
};
const handleChange = useCallback(
(path: string): MouseEventHandler =>
(e) => {
e.preventDefault();
navigate(path);
},
[navigate],
);

const handleLogoClick = useCallback(() => {
navigate('/');
@@ -77,18 +82,21 @@ const RagHeader = () => {
value={currentPath}
>
{tagsData.map((item) => (
<Radio.Button
value={item.name}
onClick={() => handleChange(item.path)}
key={item.name}
>
<Flex align="center" gap={8}>
<item.icon
className={styles.radioButtonIcon}
stroke={item.name === currentPath ? 'black' : 'white'}
></item.icon>
{item.name}
</Flex>
<Radio.Button value={item.name} key={item.name}>
<a href={item.path}>
<Flex
align="center"
gap={8}
onClick={handleChange(item.path)}
className="cursor-pointer"
>
<item.icon
className={styles.radioButtonIcon}
stroke={item.name === currentPath ? 'black' : 'white'}
></item.icon>
{item.name}
</Flex>
</a>
</Radio.Button>
))}
</Radio.Group>

Loading…
取消
儲存