Commit Graph

10 Commits

Author SHA1 Message Date
ZacharyZcR
7bcc863270 Fix SiJava import error - replace with SiOracle
- Replace non-existent SiJava with SiOracle for Java files
- Oracle is the owner of Java, making it an appropriate icon choice
- All imported icons now exist and should work correctly
- Maintain red color scheme for Java files
2025-09-16 18:19:38 +08:00
ZacharyZcR
7bb09935a6 Fix icon import error and classify YAML as code files
- Replace SiCsharp with SiDotnet for C# files (correct icon name)
- Move yaml and yml extensions to codeExts array
- Remove separate yaml file type, treat as code files
- Simplify file type logic by removing yaml-specific conditions
- YAML files now get full CodeMirror editing experience with syntax highlighting
2025-09-16 18:17:50 +08:00
ZacharyZcR
560b47532c Add official programming language icons and YAML support
- Install react-icons library for official technology icons
- Create getLanguageIcon function with 25+ language-specific icons
- Add official brand colors for each programming language:
  - JavaScript/JSX (yellow), TypeScript/TSX (blue)
  - Python (blue), Java (red), Go (cyan), Rust (orange)
  - HTML5 (orange), CSS3 (blue), SCSS/Sass (pink)
  - JSON (yellow), YAML (red), SQL (blue), etc.
- Add dedicated YAML file type support with official YAML icon
- Support special files: Dockerfile, Makefile, Gemfile
- Ensure YAML files get CodeMirror syntax highlighting and editing
- Update shouldShowAsText logic to include YAML files
- Maintain consistent professional appearance across all file types
2025-09-16 18:15:14 +08:00
ZacharyZcR
5e2d463678 Add comprehensive code editing support with syntax highlighting
- Integrate CodeMirror for advanced code editing with syntax highlighting
- Support 20+ programming languages including JavaScript, TypeScript, Python, Java, Go, Rust, etc.
- Add JSON files to code file category for proper syntax highlighting
- Implement line numbers for both CodeMirror and search mode
- Add comprehensive editor features: code folding, auto-completion, bracket matching
- Maintain search functionality with line numbers in read-only mode
- Use dark theme to match project design system
- Ensure all code files are fully editable with professional IDE-like features
2025-09-16 18:10:28 +08:00
ZacharyZcR
978981dd6b Fix search highlighting scroll issue and improve color contrast
- Remove overlay-based highlighting that stayed in place during scroll
- Switch between read-only highlighted view and editable textarea based on search state
- Enhance color contrast: current match (red text + yellow bg), other matches (blue text + light blue bg)
- Use font-bold for better visibility of search results
- Ensure highlights follow text content during scrolling
2025-09-16 18:06:15 +08:00
ZacharyZcR
1d79fd721e Optimize search highlighting: change from background colors to text color changes
- Replace background highlighting with text color changes for better visibility
- Current match highlighted in orange, other matches in blue
- Add font-semibold for better distinction of search results
- Improve readability by avoiding color overlay on text
2025-09-16 18:03:31 +08:00
ZacharyZcR
f4f5e47e48 Refactor file window components to use shadcn design tokens
- Replace hardcoded colors with shadcn CSS variables in DraggableWindow
- Update FileViewer to use proper shadcn theme colors
- Switch from gray-* to muted/foreground/background tokens
- Improve dark mode compatibility and visual consistency
- Maintain all existing functionality with better theming support

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 17:46:34 +08:00
ZacharyZcR
0497ff139e Fix SSH connection issues and enable no-extension file editing
- Add SSH connection checking with auto-reconnection in FileWindow
- Fix missing sshHost parameter passing from FileManagerModern
- Enable editing for files without extensions (.bashrc, Dockerfile, etc.)
- Add proper error handling for SSH connection failures
- Fix onContentChange callback for real-time text editing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 17:41:08 +08:00
ZacharyZcR
e364c20213 Add smart large file handling for unknown file types
Enhanced FileViewer to handle unknown file types intelligently:

⚠️ **Large File Warning System**:
- Files > 1MB show warning dialog before opening as text
- Files > 10MB are blocked for security (cannot open as text)
- User can choose: "Open as Text", "Download Instead", or "Cancel"
- Prevents browser crashes from massive files

📝 **Universal Text Fallback**:
- Unknown file types now default to text viewer for files ≤ 1MB
- Users can force-open larger files as text after warning
- Smart detection prevents opening binary files accidentally

🛡️ **Safety Features**:
- Hard 10MB limit prevents system crashes
- Clear file size display in warnings
- Performance impact warnings for 1MB+ files
- Graceful fallback to download option

🎯 **User Experience**:
- Unknown files automatically try text mode first
- Clear messaging about potential issues
- Multiple resolution options (text/download/cancel)
- Maintains safety while maximizing accessibility

This allows users to examine any file type as text when safe,
while protecting against performance issues and crashes.
2025-09-16 17:25:52 +08:00
ZacharyZcR
22ac7d8596 Implement draggable file windows - Windows Explorer style
Added comprehensive draggable window system with the following features:

🪟 **DraggableWindow Component**:
- Full drag and drop functionality with title bar dragging
- Window resizing from all edges and corners
- Maximize/minimize/close window controls
- Double-click title bar to maximize/restore
- Auto position adjustment to prevent off-screen windows
- Windows-style blue gradient title bar

📁 **FileViewer Component**:
- Multi-format file support (text, code, images, videos, audio)
- Syntax highlighting distinction for code files
- Editable text files with real-time content tracking
- File metadata display (size, modified date, permissions)
- Save and download functionality
- Unsaved changes indicator

🎯 **WindowManager System**:
- Multi-window support with proper z-index management
- Window factory pattern for dynamic component creation
- Focus management - clicking brings window to front
- Smart window positioning with auto-offset
- Memory leak prevention with proper cleanup

🔗 **FileWindow Integration**:
- SSH file loading with error handling
- Auto-detect editable file types
- Real-time file saving to remote server
- Download files as binary blobs
- Loading states and progress feedback

 **User Experience**:
- Double-click any file to open in draggable window
- Multiple files can be open simultaneously
- Windows behave like native Windows Explorer
- Smooth animations and transitions
- Responsive design that works on all screen sizes

This transforms the file manager from a basic browser into a full
desktop-class application with native OS window management behavior.
2025-09-16 17:22:21 +08:00