1. 23 Jul, 2025 1 commit
  2. 22 Jul, 2025 14 commits
  3. 21 Jul, 2025 16 commits
  4. 20 Jul, 2025 9 commits
    • 🖼️ feat(header): improve logo loading UX with skeleton overlay · 78597a22
      Ensure the header logo is shown only after the image has fully loaded to eliminate flicker:
      
      • Introduced `logoLoaded` state to track image load completion.
      • Pre-loaded the logo using `new Image()` inside a `useEffect` hook and set state on `onload`.
      • Replaced the previous Skeleton wrapper with a stacked layout:
        – A `Skeleton.Image` placeholder is rendered while the logo is loading.
        – The real `<img>` element fades in with an opacity transition once both global
          `isLoading` and `logoLoaded` are true.
      • Added automatic reset of `logoLoaded` whenever the logo source changes.
      • Removed redundant `onLoad` on the `<img>` tag to avoid double triggers.
      • Ensured placeholder and image sizes match via absolute positioning to prevent layout shift.
      
      This delivers a smoother visual experience by keeping the skeleton visible until the logo is completely ready and then revealing it seamlessly.
      t0ng7u committed
    • 💄 refactor(playground): migrate inline styles to TailwindCSS v3 classes · e390d1ab
      - Replace all inline style objects with TailwindCSS utility classes
      - Convert Layout and Layout.Sider component styles to responsive classes
      - Simplify conditional styling logic using template literals
      - Maintain existing responsive design and functionality
      - Improve code readability and maintainability
      
      Changes include:
      - Layout: height/background styles → h-full bg-transparent
      - Sider: complex style object → conditional className with mobile/desktop variants
      - Debug panel overlay: inline styles → utility classes (fixed, z-[1000], etc.)
      - Remove redundant style props while preserving visual consistency
      t0ng7u committed
    • ️ docs(about): update license information from Apache 2.0 to AGPL v3.0 · dac5cbae
      - Update license text from "Apache-2.0协议" to "AGPL v3.0协议"
      - Update license link to point to official AGPL v3.0 license page
      - Align About page license references with actual project license
      t0ng7u committed
    • 📚 refactor(dashboard): modularize dashboard page into reusable hooks and components · f1e34bbc
      ## Overview
      Refactored the monolithic dashboard page (~1200 lines) into a modular architecture following the project's global layout pattern. The main `Detail/index.js` is now simplified to match other page entry files like `Midjourney/index.js`.
      
      ## Changes Made
      
      ### 🏗️ Architecture Changes
      - **Before**: Single large file `pages/Detail/index.js` containing all dashboard logic
      - **After**: Modular structure with dedicated hooks, components, and helpers
      
      ### 📁 New Files Created
      - `hooks/dashboard/useDashboardData.js` - Core data management and API calls
      - `hooks/dashboard/useDashboardStats.js` - Statistics computation and memoization
      - `hooks/dashboard/useDashboardCharts.js` - Chart specifications and data processing
      - `constants/dashboard.constants.js` - UI config, time options, and chart defaults
      - `helpers/dashboard.js` - Utility functions for data processing and UI helpers
      - `components/dashboard/index.jsx` - Main dashboard component integrating all modules
      - `components/dashboard/modals/SearchModal.jsx` - Search modal component
      
      ### 🔧 Updated Files
      - `constants/index.js` - Added dashboard constants export
      - `helpers/index.js` - Added dashboard helpers export
      - `pages/Detail/index.js` - Simplified to minimal wrapper (~20 lines)
      
      ### 🐛 Bug Fixes
      - Fixed SearchModal DatePicker onChange to properly convert Date objects to timestamp strings
      - Added missing localStorage update for `data_export_default_time` persistence
      - Corrected data flow between search confirmation and chart updates
      - Ensured proper chart data refresh after search parameter changes
      
      ###  Key Improvements
      - **Separation of Concerns**: Data, stats, and charts logic isolated into dedicated hooks
      - **Reusability**: Components and hooks can be easily reused across the application
      - **Maintainability**: Smaller, focused files easier to understand and modify
      - **Consistency**: Follows established project patterns for global folder organization
      - **Performance**: Proper memoization and callback optimization maintained
      
      ### 🎯 Functional Verification
      -  All dashboard panels (model analysis, resource consumption, performance metrics) update correctly
      -  Search functionality works with proper parameter validation
      -  Chart data refreshes properly after search/filter operations
      -  User interface remains identical to original implementation
      -  All existing features preserved without regression
      
      ### 🔄 Data Flow
      ```
      User Input → SearchModal → useDashboardData → API Call → useDashboardCharts → UI Update
      ```
      
      ## Breaking Changes
      None. All existing functionality preserved.
      
      ## Migration Notes
      The refactored dashboard maintains 100% API compatibility and identical user experience while providing a cleaner, more maintainable codebase structure.
      t0ng7u committed