Commit Graph

3 Commits

  • refactor: split useSettings hook into specialized hooks
    Before optimization:
    - useSettings.ts: 516 lines (single monolithic hook)
    
    After optimization:
    - useSettingsForm.ts: 158 lines (form state management)
    - useDirectorySettings.ts: 297 lines (directory management)
    - useSettingsMetadata.ts: 95 lines (metadata management)
    - useSettings.ts: 215 lines (composition layer)
    - Total: 765 lines (+249 lines, but with clear separation of concerns)
    
    Benefits:
     Single Responsibility Principle: each hook focuses on one domain
     Testability: independent hooks are easier to unit test
     Reusability: specialized hooks can be reused in other components
     Maintainability: reduced cognitive load per file
     Zero breaking changes: SettingsDialog auto-adapted to new interface
    
    Technical details:
    - useSettingsForm: pure form state + language sync
    - useDirectorySettings: directory selection/reset + default value computation
    - useSettingsMetadata: config path + portable mode + restart flag
    - useSettings: composition layer + save logic + reset logic
  • feat: complete stage 4 cleanup and code formatting
    This commit completes stage 4 of the refactoring plan, focusing on cleanup
    and optimization of the modernized codebase.
    
    ## Key Changes
    
    ### Code Cleanup
    - Remove legacy `src/lib/styles.ts` (no longer needed)
    - Remove old modal components (`ImportProgressModal.tsx`, `ProviderList.tsx`)
    - Streamline `src/lib/tauri-api.ts` from 712 lines to 17 lines (-97.6%)
      - Remove global `window.api` pollution
      - Keep only event listeners (`tauriEvents.onProviderSwitched`)
      - All API calls now use modular `@/lib/api/*` layer
    
    ### Type System
    - Clean up `src/vite-env.d.ts` (remove 156 lines of outdated types)
    - Remove obsolete global type declarations
    - All TypeScript checks pass with zero errors
    
    ### Code Formatting
    - Format all source files with Prettier (82 files)
    - Fix formatting issues in 15 files:
      - App.tsx and core components
      - MCP management components
      - Settings module components
      - Provider management components
      - UI components
    
    ### Documentation Updates
    - Update `REFACTORING_CHECKLIST.md` with stage 4 progress
    - Mark completed tasks in `REFACTORING_MASTER_PLAN.md`
    
    ## Impact
    
    **Code Reduction:**
    - Total: -1,753 lines, +384 lines (net -1,369 lines)
    - tauri-api.ts: 712 → 17 lines (-97.6%)
    - Removed styles.ts: -82 lines
    - Removed vite-env.d.ts declarations: -156 lines
    
    **Quality Improvements:**
    -  Zero TypeScript errors
    -  Zero TODO/FIXME comments
    -  100% Prettier compliant
    -  Zero `window.api` references
    -  Fully modular API layer
    
    ## Testing
    - [x] TypeScript compilation passes
    - [x] Code formatting validated
    - [x] No linting errors
    
    Stage 4 completion: 100%
    Ready for stage 5 (testing and bug fixes)