@@ -965,32 +965,40 @@ export default function Layout(props: ParentProps) {
965965 if ( ! current ) return
966966 if ( directory === current . worktree ) return
967967
968- const reset = globalSDK . client . worktree
968+ const progress = showToast ( {
969+ persistent : true ,
970+ title : "Resetting workspace" ,
971+ description : "This may take a minute." ,
972+ } )
973+ const dismiss = ( ) => toaster . dismiss ( progress )
974+
975+ const sessions = await globalSDK . client . session
976+ . list ( { directory } )
977+ . then ( ( x ) => x . data ?? [ ] )
978+ . catch ( ( ) => [ ] )
979+
980+ const result = await globalSDK . client . worktree
969981 . reset ( { directory : current . worktree , worktreeResetInput : { directory } } )
970982 . then ( ( x ) => x . data )
971983 . catch ( ( err ) => {
984+ dismiss ( )
972985 showToast ( {
973986 title : "Failed to reset workspace" ,
974987 description : errorMessage ( err ) ,
975988 } )
976989 return false
977990 } )
978991
979- const href = `/${ base64Encode ( directory ) } /session`
980- navigate ( href )
981- layout . mobileSidebar . hide ( )
982-
983- void ( async ( ) => {
984- const sessions = await globalSDK . client . session
985- . list ( { directory } )
986- . then ( ( x ) => x . data ?? [ ] )
987- . catch ( ( ) => [ ] )
988-
989- if ( sessions . length === 0 ) return
992+ if ( ! result ) {
993+ dismiss ( )
994+ return
995+ }
990996
991- const archivedAt = Date . now ( )
992- await Promise . all (
993- sessions . map ( ( session ) =>
997+ const archivedAt = Date . now ( )
998+ await Promise . all (
999+ sessions
1000+ . filter ( ( session ) => session . time . archived === undefined )
1001+ . map ( ( session ) =>
9941002 globalSDK . client . session
9951003 . update ( {
9961004 sessionID : session . id ,
@@ -999,11 +1007,14 @@ export default function Layout(props: ParentProps) {
9991007 } )
10001008 . catch ( ( ) => undefined ) ,
10011009 ) ,
1002- )
1003- } ) ( )
1010+ )
10041011
1005- const result = await reset
1006- if ( ! result ) return
1012+ await globalSDK . client . instance . dispose ( { directory } ) . catch ( ( ) => undefined )
1013+ dismiss ( )
1014+
1015+ const href = `/${ base64Encode ( directory ) } /session`
1016+ navigate ( href )
1017+ layout . mobileSidebar . hide ( )
10071018
10081019 showToast ( {
10091020 title : "Workspace reset" ,
0 commit comments