diff --git a/app/src/hooks/useFileNavigation.js b/app/src/hooks/useFileNavigation.ts similarity index 67% rename from app/src/hooks/useFileNavigation.js rename to app/src/hooks/useFileNavigation.ts index ed4ff76..37a3ce6 100644 --- a/app/src/hooks/useFileNavigation.js +++ b/app/src/hooks/useFileNavigation.ts @@ -1,16 +1,22 @@ import { useState, useCallback, useEffect } from 'react'; -import { DEFAULT_FILE } from '../utils/constants'; +import { DEFAULT_FILE } from '../types/file'; import { useWorkspace } from '../contexts/WorkspaceContext'; import { useLastOpenedFile } from './useLastOpenedFile'; -export const useFileNavigation = () => { - const [selectedFile, setSelectedFile] = useState(DEFAULT_FILE.path); - const [isNewFile, setIsNewFile] = useState(true); +interface UseFileNavigationResult { + selectedFile: string; + isNewFile: boolean; + handleFileSelect: (filePath: string | null) => Promise; +} + +export const useFileNavigation = (): UseFileNavigationResult => { + const [selectedFile, setSelectedFile] = useState(DEFAULT_FILE.path); + const [isNewFile, setIsNewFile] = useState(true); const { currentWorkspace } = useWorkspace(); const { loadLastOpenedFile, saveLastOpenedFile } = useLastOpenedFile(); const handleFileSelect = useCallback( - async (filePath) => { + async (filePath: string | null): Promise => { const newPath = filePath || DEFAULT_FILE.path; setSelectedFile(newPath); setIsNewFile(!filePath); @@ -24,7 +30,7 @@ export const useFileNavigation = () => { // Load last opened file when workspace changes useEffect(() => { - const initializeFile = async () => { + const initializeFile = async (): Promise => { setSelectedFile(DEFAULT_FILE.path); setIsNewFile(true);