- 23 Jul, 2025 1 commit
-
-
🔧 Filter out the special empty string group ("": "用户分组") from the usable groups in PricingGroups component. This empty group represents "user's current group" but contains no data and should not be displayed in the group filter options. - Add filter condition to exclude empty string keys from usableGroup - Prevents displaying invalid empty group option in UI - Improves user experience by showing only valid selectable groupst0ng7u committed
-
- 22 Jul, 2025 22 commits
-
-
✨ Add comprehensive loading state support with skeleton animations for the SelectableButtonGroup component, improving user experience during data loading. Key Changes: - Add loading prop to SelectableButtonGroup with minimum 500ms display duration - Implement skeleton buttons with proper Semi-UI Skeleton wrapper and active animation - Use fixed skeleton count (6 items) to prevent visual jumping during load transitions - Pass loading state through all pricing filter components hierarchy: - PricingSidebar and PricingFilterModal as container components - PricingDisplaySettings, PricingCategories, PricingGroups, PricingQuotaTypes as filter components Technical Details: - Reference CardTable.js implementation for consistent skeleton UI patterns - Add useEffect hook for 500ms minimum loading duration control - Support both checkbox and regular button skeleton modes - Maintain responsive layout compatibility (mobile/desktop) - Add proper JSDoc parameter documentation for loading prop Fixes: - Prevent skeleton count sudden changes that caused visual discontinuity - Ensure proper skeleton animation with Semi-UI active parameter - Maintain consistent loading experience across all filter components
t0ng7u committed -
✨ ✨ feat: enhance SelectableButtonGroup with checkbox support and refactor pricing display settings (#1365) - Add withCheckbox prop to SelectableButtonGroup component for checkbox-prefixed buttons - Support both single value and array activeValue for multi-selection scenarios - Refactor PricingDisplaySettings to use consistent SelectableButtonGroup styling - Replace Switch components with checkbox-enabled SelectableButtonGroup - Replace Select dropdown with SelectableButtonGroup for currency selection - Maintain unified UI/UX across all pricing filter components - Add proper JSDoc documentation for new withCheckbox functionality This improves visual consistency and provides a more cohesive user experience in the model pricing filter interface.t0ng7u committed -
💄 Summary • Swapped out the old availability UI for clearer icon-based feedback. • Users now see a green check icon when their group can use a model and a red × icon (with tooltip) when it cannot. Details 1. Imports • Removed deprecated `IconVerify`. • Added `IconCheckCircleStroked`
✅ and `IconClose`❌ for new states. 2. Availability column • `renderAvailable` now – Shows a green `IconCheckCircleStroked` inside a popover (“Your group can use this model”). – Shows a red `IconClose` inside a popover (“你的分组无权使用该模型”) when the model is inaccessible. – Eliminates the empty cell/grey tag fallback. 3. Group tag • Updated selected-group tag to use `IconCheckCircleStroked` for visual consistency. Result Improves UX by providing explicit visual cues for model availability and removes ambiguous blank cells.t0ng7u committed -
♻ Centralize filter-reset logic to improve maintainability and consistency. - Add `resetPricingFilters` helper to `web/src/helpers/utils.js`, encapsulating all reset actions (search, category, currency, ratio, group, quota type, etc.). - Update `PricingFilterModal.jsx` and `PricingSidebar.jsx` to import and use the new utility instead of keeping their own duplicate `handleResetFilters`. - Removes repeated code, ensures future changes to reset behavior require modification in only one place, and keeps components lean.
t0ng7u committed -
🔧 * **PricingDisplaySettings.jsx** • Extracted display settings (recharge price, currency, ratio toggle) from PricingSidebar • Maintains complete styling and functionality as standalone component * **SelectableButtonGroup.jsx** • Added isMobile detection with conditional Col spans • Mobile: `span={12}` (2 buttons per row) for better touch experience • Desktop: preserved responsive grid `xs={24} sm={24} md={24} lg={12} xl={8}` * **PricingSidebar.jsx** • Updated imports to use new PricingDisplaySettings component • Simplified component structure while preserving reset logic These changes enhance code modularity and provide optimized mobile UX for filter button groups across the pricing interface.t0ng7u committed -
📌 * 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 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 -
🎨 * 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 -
🐛 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 -
chore: opt video channel and platform
IcedTangerine committed -
feitianbubu committed
-
🌐 - 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 -
creamlike1024 committed
-
creamlike1024 committed
-
creamlike1024 committed
-
t0ng7u committed
-
♻ - 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 -
fix: page query param is p
Calcium-Ion committed -
fix: avoid relayError nil panic
Calcium-Ion committed -
CaIon committed
-
fix: add Think field to OllamaRequest and support extra parameters in GeneralOpenAIRequest. (close #1125 )
CaIon committed -
feitianbubu committed
-
- 21 Jul, 2025 16 commits
-
-
🍎 t0ng7u committed -
✨ Some upstream Kling deployments still expect the legacy `model` key instead of `model_name`. This change adds the `model` field to `requestPayload` and populates it with the same value as `model_name`, ensuring the generated JSON works with both old and new versions. Changes: • Added `Model string "json:\"model,omitempty\""` to `requestPayload` • Set `Model` alongside `ModelName` in `convertToRequestPayload` • Updated comments to clarify compatibility purpose Result: Kling task requests now contain both `model_name` and `model`, removing integration issues with upstreams that only recognize one of the keys.
t0ng7u committed -
✨ Previously, the KlingRequestConvert middleware only extracted model name from the 'model_name' field, which caused 503 errors when requests used the 'model' field instead. This enhancement improves API compatibility by supporting both field names. Changes: - Modified KlingRequestConvert() to check for 'model' field if 'model_name' is empty - Maintains backward compatibility with existing 'model_name' usage - Fixes "no available channels for model" error when model field was not recognized This resolves issues where valid Kling API requests were failing due to field name mismatches, improving the overall user experience for video generation APIs.
t0ng7u committed -
creamlike1024 committed
-
Merge branch 'pr/support-New-API-proxy-kling' of github.com:feitianbubu/new-api into feitianbubu-pr/support-New-API-proxy-kling
creamlike1024 committed -
🔖 t0ng7u committed -
📱 t0ng7u committed -
📱 t0ng7u committed -
feitianbubu committed
-
📱 t0ng7u committed -
📱 t0ng7u committed -
📱 - Replace fixed table layout with flexible paragraph layout - Fix display truncation issues on mobile and small screens - Increase partner logo height from 60px to 80px for better visibility - Enable automatic line wrapping for partner logos - Maintain all clickable links and functionality: * Cherry Studio → https://www.cherry-ai.com/ * Peking University → https://bda.pku.edu.cn/ * UCloud → https://www.compshare.cn/?ytag=GPU_yy_gh_newapi * Alibaba Cloud → https://bailian.console.aliyun.com/ - Keep center alignment and "no particular order" disclaimer - Apply responsive improvements to both README versions - Ensure consistent rendering across different screen sizes The partners section now adapts gracefully to various viewport widths, providing optimal viewing experience on desktop and mobile devices.
t0ng7u committed -
🔗 - Add Alibaba Cloud as new trusted partner with logo and link - Make all partner logos clickable with respective website links: * Cherry Studio → https://www.cherry-ai.com/ * Peking University → https://bda.pku.edu.cn/ * UCloud → https://www.compshare.cn/?ytag=GPU_yy_gh_newapi * Alibaba Cloud → https://bailian.console.aliyun.com/ - Expand partner table from 3 to 4 columns - Maintain consistent 60px logo height across all partners - Apply changes to both Chinese and English README versions - All links open in new tabs for better user experience The partners section now provides direct access to all partner websites while showcasing an expanded ecosystem of trusted collaborators.
t0ng7u committed -
🤝 - Replace complex HTML/CSS layout with simple table format - Remove inline styles and JavaScript that GitHub doesn't support - Add clickable link for UCloud partner logo - Remove acknowledgment text to keep section clean and minimal - Ensure consistent logo sizing (60px height) across all partners - Maintain responsive layout using GitHub-compatible HTML table The partners section now displays properly on GitHub while preserving functionality and professional appearance.
t0ng7u committed -
🤝 - Add visually appealing trusted partners showcase above Star History - Include partner logos: Cherry Studio, Peking University, and UCloud - Implement responsive HTML/CSS layout with gradient background - Add hover effects and smooth transitions for enhanced UX - Provide bilingual support (Chinese and English versions) - Display logos from docs/images/ directory with consistent styling The new section enhances project credibility by showcasing institutional and enterprise partnerships in both README.md and README.en.md files.
t0ng7u committed -
feitianbubu committed
-
- 20 Jul, 2025 1 commit
-
-
t0ng7u committed
-