mediago-dev--mediago
38cb884b77
Also fix pre-existing lint errors exposed by staging: - Merge duplicate 'eventsource' imports in eventEmitter.ts - Remove unused catch parameter in eventEmitter.ts - Merge duplicate 'react' imports in app-side-bar.tsx Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Frontend
The React-based frontend application that provides the user interface for MediaGo, used in both Electron desktop app and standalone web application.
Overview
This package contains the React frontend that:
- Provides the main user interface for video downloading
- Handles video URL input and processing
- Displays download progress and history
- Manages application settings and preferences
- Communicates with backend services via Socket.io
- Works in both Electron renderer and standalone web contexts
Key Features
- Video Download Interface: Clean UI for adding and managing downloads
- Real-time Updates: Live progress tracking via Socket.io
- Responsive Design: Works on desktop and mobile devices
- Theme Support: Light/dark mode capabilities
- Multi-platform: Shared UI for Electron desktop and web versions
- Settings Management: User preferences and configuration
Technologies
- React 18: Modern React with hooks and concurrent features
- Vite: Fast build tool and dev server
- Ant Design: UI component library
- TailwindCSS: Utility-first CSS framework
- Shadcn/ui: Modern component library
- Zustand: Lightweight state management
- Socket.io Client: Real-time communication
- TypeScript: Type-safe development
Development
# Start development mode (with Electron)
pnpm dev
# Start web-only development
pnpm dev:web
# Build frontend
pnpm build:web
pnpm build:renderer
# Type checking
pnpm types:renderer
Architecture
The frontend is designed to work in two contexts:
- Electron Renderer: Loaded in Electron's BrowserWindow
- Standalone Web: Served by the webapi backend for browser access
It communicates with the backend services through Socket.io for real-time updates and HTTP APIs for data operations.