11import React , { memo , useEffect , useState , useMemo , Fragment , useRef } from 'react' ;
22import { connect } from 'umi' ;
3+ import i18n from '@/i18n' ;
34import styles from './index.less' ;
45import classnames from 'classnames' ;
56import { ConsoleOpenedStatus , ConsoleStatus , TreeNodeType , WorkspaceTabType , workspaceTabConfig } from '@/constants' ;
67import historyService from '@/service/history' ;
78import sqlService from '@/service/sql' ;
89import TabsNew , { ITabItem } from '@/components/TabsNew' ;
10+ import Iconfont from '@/components/Iconfont' ;
911import LoadingContent from '@/components/Loading/LoadingContent' ;
1012import ShortcutKey from '@/components/ShortcutKey' ;
1113import DatabaseTableEditor from '@/blocks/DatabaseTableEditor' ;
@@ -16,6 +18,7 @@ import { IAIState } from '@/models/ai';
1618import { useUpdateEffect } from '@/hooks/useUpdateEffect' ;
1719import { v4 as uuidV4 } from 'uuid' ;
1820import { IWorkspaceTab } from '@/typings' ;
21+ import { Button } from 'antd' ;
1922import {
2023 registerIntelliSenseField ,
2124 registerIntelliSenseKeyword ,
@@ -53,8 +56,23 @@ const WorkspaceRight = memo<IProps>((props: IProps) => {
5356 } ;
5457 } ) ;
5558 setWorkspaceTabList ( newTabList || [ ] ) ;
59+ setActiveConsoleId ( newTabList [ 0 ] ?. id ) ;
5660 } , [ openConsoleList ] ) ;
5761
62+ // 注册快捷键command+shift+L新建console
63+ useEffect ( ( ) => {
64+ const handleKeyDown = ( e : KeyboardEvent ) => {
65+ console . log ( e . metaKey , e . shiftKey , e . code === 'KeyL' , e ) ;
66+ if ( e . metaKey && e . shiftKey && e . code === 'KeyL' ) {
67+ addConsole ( ) ;
68+ }
69+ } ;
70+ window . addEventListener ( 'keydown' , handleKeyDown ) ;
71+ return ( ) => {
72+ window . removeEventListener ( 'keydown' , handleKeyDown ) ;
73+ } ;
74+ } , [ workspaceTabList ] ) ;
75+
5876 useEffect ( ( ) => {
5977 if ( createConsoleIntro ) {
6078 if ( workspaceTabList . findIndex ( ( t ) => t . id === createConsoleIntro . id ) === - 1 ) {
@@ -428,6 +446,7 @@ const WorkspaceRight = memo<IProps>((props: IProps) => {
428446 uniqueData : newConsole ,
429447 } ,
430448 ] ;
449+ console . log ( newList ) ;
431450 setWorkspaceTabList ( newList ) ;
432451 setActiveConsoleId ( res ) ;
433452 } ) ;
@@ -444,10 +463,21 @@ const WorkspaceRight = memo<IProps>((props: IProps) => {
444463 } ) ;
445464 } ;
446465
466+ function renderCreateConsoleButton ( ) {
467+ return (
468+ < div className = { styles . createButtonBox } >
469+ < Button className = { styles . createButton } type = "primary" onClick = { addConsole } >
470+ < Iconfont code = "" />
471+ { i18n ( 'common.button.createConsole' ) }
472+ </ Button >
473+ </ div >
474+ ) ;
475+ }
476+
447477 function renderEmpty ( ) {
448478 return (
449479 < div className = { styles . ears } >
450- < ShortcutKey />
480+ < ShortcutKey slot = { renderCreateConsoleButton } />
451481 </ div >
452482 ) ;
453483 }
@@ -555,7 +585,7 @@ const WorkspaceRight = memo<IProps>((props: IProps) => {
555585 activeKey = { activeConsoleId }
556586 editableNameOnBlur = { editableNameOnBlur }
557587 items = { tabsList }
558- lastTabCannotClosed
588+ // lastTabCannotClosed
559589 />
560590 </ div >
561591 </ LoadingContent >
0 commit comments