@@ -900,6 +900,12 @@ export function ShortcutKeyModal(props: { onClose: () => void }) {
900
900
title : Locale . Chat . ShortcutKey . showShortcutKey ,
901
901
keys : isMac ? [ "⌘" , "/" ] : [ "Ctrl" , "/" ] ,
902
902
} ,
903
+ {
904
+ title : Locale . Chat . ShortcutKey . clearContext ,
905
+ keys : isMac
906
+ ? [ "⌘" , "Shift" , "backspace" ]
907
+ : [ "Ctrl" , "Shift" , "backspace" ] ,
908
+ } ,
903
909
] ;
904
910
return (
905
911
< div className = "modal-mask" >
@@ -1552,7 +1558,7 @@ function _Chat() {
1552
1558
const [ showShortcutKeyModal , setShowShortcutKeyModal ] = useState ( false ) ;
1553
1559
1554
1560
useEffect ( ( ) => {
1555
- const handleKeyDown = ( event : any ) => {
1561
+ const handleKeyDown = ( event : KeyboardEvent ) => {
1556
1562
// 打开新聊天 command + shift + o
1557
1563
if (
1558
1564
( event . metaKey || event . ctrlKey ) &&
@@ -1603,14 +1609,30 @@ function _Chat() {
1603
1609
event . preventDefault ( ) ;
1604
1610
setShowShortcutKeyModal ( true ) ;
1605
1611
}
1612
+ // 清除上下文 command + shift + backspace
1613
+ else if (
1614
+ ( event . metaKey || event . ctrlKey ) &&
1615
+ event . shiftKey &&
1616
+ event . key . toLowerCase ( ) === "backspace"
1617
+ ) {
1618
+ event . preventDefault ( ) ;
1619
+ chatStore . updateTargetSession ( session , ( session ) => {
1620
+ if ( session . clearContextIndex === session . messages . length ) {
1621
+ session . clearContextIndex = undefined ;
1622
+ } else {
1623
+ session . clearContextIndex = session . messages . length ;
1624
+ session . memoryPrompt = "" ; // will clear memory
1625
+ }
1626
+ } ) ;
1627
+ }
1606
1628
} ;
1607
1629
1608
- window . addEventListener ( "keydown" , handleKeyDown ) ;
1630
+ document . addEventListener ( "keydown" , handleKeyDown ) ;
1609
1631
1610
1632
return ( ) => {
1611
- window . removeEventListener ( "keydown" , handleKeyDown ) ;
1633
+ document . removeEventListener ( "keydown" , handleKeyDown ) ;
1612
1634
} ;
1613
- } , [ messages , chatStore , navigate ] ) ;
1635
+ } , [ messages , chatStore , navigate , session ] ) ;
1614
1636
1615
1637
const [ showChatSidePanel , setShowChatSidePanel ] = useState ( false ) ;
1616
1638
0 commit comments