@@ -5,11 +5,13 @@ import {
55import ReverseThemeProvider from './ReverseThemeProvider' ;
66import WEBUINotificationDrawer from './WEBUINotificationDrawer' ;
77import { BellOutlined } from '@ant-design/icons' ;
8- import { Badge , Button , Typography } from 'antd' ;
8+ import { Badge , Button , Tooltip , Typography } from 'antd' ;
99import type { ButtonProps } from 'antd' ;
10+ import { t } from 'i18next' ;
1011import { atom , useAtom } from 'jotai' ;
1112import _ from 'lodash' ;
1213import React , { useEffect } from 'react' ;
14+ import useKeyboardShortcut from 'src/hooks/useKeyboardShortcut' ;
1315
1416export const isOpenDrawerState = atom ( false ) ;
1517
@@ -28,6 +30,18 @@ const BAINotificationButton: React.FC<ButtonProps> = ({ ...props }) => {
2830 } ;
2931 } , [ upsertNotification ] ) ;
3032
33+ useKeyboardShortcut (
34+ ( event ) => {
35+ if ( event . key === ']' ) {
36+ event . preventDefault ( ) ;
37+ setIsOpenDrawer ( ( v ) => ! v ) ;
38+ }
39+ } ,
40+ {
41+ skipShortcutOnMetaKey : true ,
42+ } ,
43+ ) ;
44+
3145 const hasRunningBackgroundTask = _ . some ( notifications , ( n ) => {
3246 return n . backgroundTask ?. status === 'pending' ;
3347 } ) ;
@@ -36,22 +50,39 @@ const BAINotificationButton: React.FC<ButtonProps> = ({ ...props }) => {
3650 return (
3751 < >
3852 < ReverseThemeProvider >
39- < Button
40- icon = {
41- < ReverseThemeProvider >
42- < Badge color = "red" dot = { hasRunningBackgroundTask } >
43- < ReverseThemeProvider >
44- < Typography . Text >
45- < BellOutlined />
46- </ Typography . Text >
47- </ ReverseThemeProvider >
48- </ Badge >
49- </ ReverseThemeProvider >
53+ < Tooltip
54+ title = {
55+ < >
56+ { t ( 'notification.Notifications' ) }
57+ < Typography . Text
58+ keyboard
59+ style = { {
60+ color : 'inherit' ,
61+ } }
62+ >
63+ ]
64+ </ Typography . Text >
65+ </ >
5066 }
51- type = "text"
52- onClick = { ( ) => setIsOpenDrawer ( ( v ) => ! v ) }
53- { ...props }
54- />
67+ placement = "left"
68+ >
69+ < Button
70+ icon = {
71+ < ReverseThemeProvider >
72+ < Badge color = "red" dot = { hasRunningBackgroundTask } >
73+ < ReverseThemeProvider >
74+ < Typography . Text >
75+ < BellOutlined />
76+ </ Typography . Text >
77+ </ ReverseThemeProvider >
78+ </ Badge >
79+ </ ReverseThemeProvider >
80+ }
81+ type = "text"
82+ onClick = { ( ) => setIsOpenDrawer ( ( v ) => ! v ) }
83+ { ...props }
84+ />
85+ </ Tooltip >
5586 </ ReverseThemeProvider >
5687 < WEBUINotificationDrawer
5788 open = { isOpenDrawer }
0 commit comments