• Johnny's avatar
    refactor(editor): complete state machine and services migration · 1b11e8c8
    Johnny authored
    BREAKING CHANGE: MemoEditor internal architecture completely refactored
    
    ## Summary
    
    Refactored MemoEditor from hooks-based state management to a three-layer
    architecture (Presentation → State → Services) using useReducer pattern.
    
    ## Changes
    
    ### Architecture
    - **State Layer** (5 new files): types, actions, reducer, context, barrel export
    - **Service Layer** (6 new files): error, validation, upload, cache, memo services + barrel
    - **Component Layer** (3 new files): EditorToolbar, EditorContent, EditorMetadata
    - **Simplified Hooks** (3 new files): useMemoInit, useAutoSave, useKeyboard
    
    ### Code Reduction
    - Main component: ~380 lines → ~140 lines (-63%)
    - Hooks removed: 5 old hooks (useMemoEditorState, useMemoSave, etc.)
    - Total lines removed: 508 lines of old code
    - Utility hooks preserved: 8 hooks still in use (useLocation, useDragAndDrop, etc.)
    
    ### Improvements
    -  Predictable state transitions with useReducer
    -  Testable business logic in pure service functions
    -  Cleaner component code (presentation only)
    -  Better separation of concerns
    -  Type-safe actions with discriminated unions
    -  Centralized error handling
    
    ## Statistics
    - Files changed: 26
    - Commits created: 25 (squashed into 1)
    - New files: 17
    - Removed files: 5
    - TypeScript errors: 0
    - Lint errors: 0
    
    ## Testing
    Manual testing required for:
    - Editor functionality (create, edit, save)
    - Drag and drop
    - Focus mode
    - Keyboard shortcuts (Cmd/Ctrl + Enter)
    - Auto-save to localStorage
    1b11e8c8
Name
Last commit
Last update
..
components Loading commit data...
helpers Loading commit data...
hooks Loading commit data...
layouts Loading commit data...
lib Loading commit data...
locales Loading commit data...
pages Loading commit data...
router Loading commit data...
store Loading commit data...
themes Loading commit data...
types Loading commit data...
utils Loading commit data...
App.tsx Loading commit data...
auth-state.ts Loading commit data...
connect.ts Loading commit data...
i18n.ts Loading commit data...
index.css Loading commit data...
main.tsx Loading commit data...