File tree Expand file tree Collapse file tree 2 files changed +16
-30
lines changed
features/task-detail/components Expand file tree Collapse file tree 2 files changed +16
-30
lines changed Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ export function TaskInput() {
2525
2626 const { view } = useNavigationStore ( ) ;
2727 const { lastUsedDirectory } = useTaskDirectoryStore ( ) ;
28- const { folders, isLoaded : foldersLoaded } = useRegisteredFoldersStore ( ) ;
28+ const { folders } = useRegisteredFoldersStore ( ) ;
2929 const { lastUsedRunMode, lastUsedLocalWorkspaceMode } = useSettingsStore ( ) ;
3030
3131 const [ selectedDirectory , setSelectedDirectory ] = useState (
@@ -41,35 +41,6 @@ export function TaskInput() {
4141 useState < LocalWorkspaceMode > ( lastUsedLocalWorkspaceMode ) ;
4242 const [ selectedBranch , setSelectedBranch ] = useState < string | null > ( null ) ;
4343
44- useEffect ( ( ) => {
45- if ( ! foldersLoaded || selectedDirectory ) return ;
46-
47- if ( view . folderId ) {
48- const folder = folders . find ( ( f ) => f . id === view . folderId ) ;
49- if ( folder ) {
50- setSelectedDirectory ( folder . path ) ;
51- return ;
52- }
53- }
54-
55- if ( lastUsedDirectory ) {
56- const folderExists = folders . some ( ( f ) => f . path === lastUsedDirectory ) ;
57- if ( folderExists ) {
58- setSelectedDirectory ( lastUsedDirectory ) ;
59- } else if ( folders . length > 0 ) {
60- setSelectedDirectory ( folders [ 0 ] . path ) ;
61- }
62- } else if ( folders . length > 0 ) {
63- setSelectedDirectory ( folders [ 0 ] . path ) ;
64- }
65- } , [
66- foldersLoaded ,
67- folders ,
68- lastUsedDirectory ,
69- view . folderId ,
70- selectedDirectory ,
71- ] ) ;
72-
7344 const { githubIntegration } = useRepositoryIntegration ( ) ;
7445
7546 useEffect ( ( ) => {
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ interface TaskDirectoryState {
1010 getTaskDirectory : ( taskId : string , repoKey ?: string ) => string | null ;
1111 setRepoDirectory : ( repoKey : string , directory : string ) => void ;
1212 clearRepoDirectory : ( repoKey : string ) => void ;
13+ validateLastUsedDirectory : ( ) => Promise < void > ;
1314}
1415
1516const isValidPath = ( path : string ) : boolean => {
@@ -54,6 +55,17 @@ export const useTaskDirectoryStore = create<TaskDirectoryState>()(
5455 repoDirectories : omitKey ( state . repoDirectories , repoKey ) ,
5556 } ) ) ;
5657 } ,
58+
59+ validateLastUsedDirectory : async ( ) => {
60+ const { lastUsedDirectory } = get ( ) ;
61+ if ( ! lastUsedDirectory ) return ;
62+
63+ const exists =
64+ await window . electronAPI ?. validateRepo ( lastUsedDirectory ) ;
65+ if ( ! exists ) {
66+ set ( { lastUsedDirectory : null } ) ;
67+ }
68+ } ,
5769 } ) ,
5870 {
5971 name : "task-directory-mappings" ,
@@ -84,6 +96,9 @@ export const useTaskDirectoryStore = create<TaskDirectoryState>()(
8496 state . repoDirectories = cleanedRepoDirs ;
8597 state . lastUsedDirectory = cleanedLastUsed ;
8698 }
99+
100+ // Validate that lastUsedDirectory still exists on disk
101+ state . validateLastUsedDirectory ( ) ;
87102 } ,
88103 } ,
89104 ) ,
You can’t perform that action at this time.
0 commit comments