1. 22 Jul, 2025 17 commits
    • 📌 fix(pricing-search): make search bar sticky within PricingContent (#1365) · cff8c3ac
      * Added `position: sticky; top: 0; z-index: 5;` to search bar container
        – keeps the bar fixed while the table body scrolls
      * Preserves previous padding, border and background styles
      * Improves usability by ensuring quick access to search & actions during long list navigation
      
      • PricingTable
        • Added `compactMode` prop; strips fixed columns and sets `scroll={compactMode ? undefined : { x: 'max-content' }}`
        • Processes columns to remove `fixed` in compact mode
      
      • PricingPage & index.css
        • Added `.pricing-scroll-hide` utility to hide Y-axis scrollbar for `Sider` & `Content`
      
      • Responsive / style refinements
        • Sidebar width adjusted to 460px
        • Scrollbars hidden uniformly across pricing modules
      
      These changes complete the model-pricing UI refactor, ensuring clean scrolling, responsive filters, and fixed availability column for better usability.
      t0ng7u committed
    • feat(ui): enhance pricing table & filters with responsive button-group, fixed… · f845a96f
       feat(ui): enhance pricing table & filters with responsive button-group, fixed column, scroll tweaks (#1365)
      
      • SelectableButtonGroup
        • Added optional collapsible support with gradient mask & toggle
        • Dynamic tagCount badge support for groups / quota types
        • Switched to responsive Row/Col (`xs 24`, `sm 24`, `lg 12`, `xl 8`) for fluid layout
        • Shows expand button only when item count exceeds visible rows
      
      • Sidebar filters
        • PricingGroups & PricingQuotaTypes now pass tag counts to button-group
        • Counts derived from current models & quota_type
      
      • PricingTableColumns
        • Moved “Availability” column to far right; fixed via `fixed: 'right'`
        • Re-ordered columns and preserved ratio / price logic
      
      • PricingTable
        • Added `compactMode` prop; strips fixed columns and sets `scroll={compactMode ? undefined : { x: 'max-content' }}`
        • Processes columns to remove `fixed` in compact mode
      
      • PricingPage & index.css
        • Added `.pricing-scroll-hide` utility to hide Y-axis scrollbar for `Sider` & `Content`
      
      • Responsive / style refinements
        • Sidebar width adjusted to 460px
        • Scrollbars hidden uniformly across pricing modules
      
      These changes complete the model-pricing UI refactor, ensuring clean scrolling, responsive filters, and fixed availability column for better usability.
      t0ng7u committed
    • 🎨 feat(model-pricing): refactor layout and component structure (#1365) · 1c22e03a
      * Re-architected model-pricing page into modular components:
        * PricingPage / PricingSidebar / PricingContent
        * Removed obsolete `ModelPricing*` components and column defs
      * Introduced reusable `SelectableButtonGroup` in `common/ui`
        * Supports Row/Col grid (3 per row)
        * Optional collapsible mode with gradient mask & toggle
      * Rebuilt filter panels with the new button-group:
        * Model categories, token groups, and quota types
        * Added dynamic `tagCount` badges to display item totals
      * Extended `useModelPricingData` hook
        * Added `filterGroup` and `filterQuotaType` state and logic
      * Updated PricingTable columns & sidebar reset logic to respect new states
      * Ensured backward compatibility via re-export in `index.jsx`
      * Polished styling, icons and i18n keys
      t0ng7u committed
    • 🐛 fix(EditChannelModal): hide empty “API Config” card for VolcEngine Ark/Doubao (type 45) · 5bd8dd78
      The VolcEngine Ark/Doubao channel now has a hard-coded base URL inside the backend, so it no longer requires any API-address settings on the front-end side.
      Previously, the input field was hidden but the surrounding “API Config” card still rendered, leaving a blank, confusing section.
      
      Changes made
      • Added `showApiConfigCard` flag (true when `inputs.type !== 45`) right after the state declarations.
      • Wrapped the entire “API Config” card in a conditional render driven by this flag.
      • Removed the duplicate declaration of `showApiConfigCard` further down in the component to avoid shadowing and improve readability.
      
      Scope verification
      • Checked all other channel types: every remaining type either displays a dedicated API-related input/banner (3, 8, 22, 36, 37, 40, …) or falls back to the generic “custom API address” field.
      • Therefore, only type 45 requires the card to be fully hidden.
      
      Result
      The “Edit Channel” modal now shows no empty card for the VolcEngine Ark/Doubao channel, leading to a cleaner and more intuitive UI while preserving behaviour for all other channels.
      t0ng7u committed
    • Merge pull request #1416 from feitianbubu/pr/opt-video-channel · d0990034
      chore: opt video channel and platform
      IcedTangerine committed
    • 🌐 feat: implement left-right pagination layout with i18n support · 2f55960b
      - Add left-right pagination layout for desktop (total info on left, controls on right)
      - Keep mobile layout centered with pagination controls only
      - Implement proper i18n support for pagination text using react-i18next
      - Add pagination translations for Chinese and English
      - Standardize t function usage across all table components to use xxxData.t pattern
      - Update CardPro footer layout to support justify-between on desktop
      - Use CSS variable --semi-color-text-2 for consistent text styling
      - Disable built-in Pagination showTotal to avoid duplication
      
      Components updated:
      - CardPro: Enhanced footer layout with responsive design
      - createCardProPagination: Added i18n support and custom total text
      - All table components: Unified t function usage pattern
      - i18n files: Added pagination-related translations
      
      The pagination now displays "Showing X to Y of Z items" on desktop
      and maintains existing centered layout on mobile devices.
      t0ng7u committed
    • ️ refactor: restructure ModelPricing component into modular architecture · a2fc86a2
      - Break down monolithic ModelPricing.js (685 lines) into focused components:
        * ModelPricingHeader.jsx - top status card with pricing information
        * ModelPricingTabs.jsx - model category navigation tabs
        * ModelPricingFilters.jsx - search and action controls
        * ModelPricingTable.jsx - data table with pricing details
        * ModelPricingColumnDefs.js - table column definitions and renderers
      
      - Create custom hook useModelPricingData.js for centralized state management:
        * Consolidate all business logic and API calls
        * Manage pricing calculations and data transformations
        * Handle search, filtering, and UI interactions
      
      - Follow project conventions matching other table components:
        * Adopt same file structure as channels/, users/, tokens/ modules
        * Maintain consistent naming patterns and component organization
        * Preserve all original functionality including responsive design
      
      - Update import paths:
        * Remove obsolete ModelPricing.js file
        * Update Pricing page to use new ModelPricingPage component
        * Fix missing import references
      
      Benefits:
      - Improved maintainability with single-responsibility components
      - Enhanced code reusability and testability
      - Better team collaboration with modular structure
      - Consistent codebase architecture across all table components
      t0ng7u committed
    • Merge pull request #1410 from feitianbubu/pr/fix-page-param · 5c1f07ae
      fix: page query param is p
      Calcium-Ion committed
    • Merge pull request #1415 from feitianbubu/pr/fix-relayError-nil · 72afb727
      fix: avoid relayError nil panic
      Calcium-Ion committed
    • fix: add Think field to OllamaRequest and support extra parameters in… · c5ec332a
      fix: add Think field to OllamaRequest and support extra parameters in GeneralOpenAIRequest. (close #1125
      )
      CaIon committed
  2. 21 Jul, 2025 16 commits
  3. 20 Jul, 2025 7 commits