@@ -71,6 +71,7 @@ import {
7171 errorMessage ,
7272 latestRootSession ,
7373 sortedRootSessions ,
74+ workspaceDeleteKeyAction ,
7475} from "./layout/helpers"
7576import {
7677 collectNewSessionDeepLinks ,
@@ -1622,7 +1623,30 @@ export default function Layout(props: ParentProps) {
16221623 dirty : false ,
16231624 } )
16241625
1626+ const handleDelete = ( ) => {
1627+ const leaveDeletedWorkspace = ! ! params . dir && pathKey ( currentDir ( ) ) === pathKey ( props . directory )
1628+ if ( leaveDeletedWorkspace ) {
1629+ navigateWithSidebarReset ( `/${ base64Encode ( props . root ) } /session` )
1630+ }
1631+ dialog . close ( )
1632+ void deleteWorkspace ( props . root , props . directory , leaveDeletedWorkspace )
1633+ }
1634+
16251635 onMount ( ( ) => {
1636+ makeEventListener (
1637+ window ,
1638+ "keydown" ,
1639+ ( event ) => {
1640+ const action = workspaceDeleteKeyAction ( event , data . status )
1641+ if ( action === "ignore" ) return
1642+ event . preventDefault ( )
1643+ event . stopPropagation ( )
1644+ if ( action === "block" ) return
1645+ handleDelete ( )
1646+ } ,
1647+ { capture : true } ,
1648+ )
1649+
16261650 globalSDK . client . file
16271651 . status ( { directory : props . directory } )
16281652 . then ( ( x ) => {
@@ -1635,15 +1659,6 @@ export default function Layout(props: ParentProps) {
16351659 } )
16361660 } )
16371661
1638- const handleDelete = ( ) => {
1639- const leaveDeletedWorkspace = ! ! params . dir && pathKey ( currentDir ( ) ) === pathKey ( props . directory )
1640- if ( leaveDeletedWorkspace ) {
1641- navigateWithSidebarReset ( `/${ base64Encode ( props . root ) } /session` )
1642- }
1643- dialog . close ( )
1644- void deleteWorkspace ( props . root , props . directory , leaveDeletedWorkspace )
1645- }
1646-
16471662 const description = ( ) => {
16481663 if ( data . status === "loading" ) return language . t ( "workspace.status.checking" )
16491664 if ( data . status === "error" ) return language . t ( "workspace.status.error" )
0 commit comments