Spaces:
Build error
Build error
| /* | |
| Copyright (C) 2025 QuantumNous | |
| This program is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU Affero General Public License as | |
| published by the Free Software Foundation, either version 3 of the | |
| License, or (at your option) any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU Affero General Public License for more details. | |
| You should have received a copy of the GNU Affero General Public License | |
| along with this program. If not, see <https://www.gnu.org/licenses/>. | |
| For commercial licensing, please contact support@quantumnous.com | |
| */ | |
| import React from 'react'; | |
| import { Button } from '@douyinfe/semi-ui'; | |
| import PricingGroups from '../filter/PricingGroups'; | |
| import PricingQuotaTypes from '../filter/PricingQuotaTypes'; | |
| import PricingEndpointTypes from '../filter/PricingEndpointTypes'; | |
| import PricingVendors from '../filter/PricingVendors'; | |
| import PricingTags from '../filter/PricingTags'; | |
| import { resetPricingFilters } from '../../../../helpers/utils'; | |
| import { usePricingFilterCounts } from '../../../../hooks/model-pricing/usePricingFilterCounts'; | |
| const PricingSidebar = ({ | |
| showWithRecharge, | |
| setShowWithRecharge, | |
| currency, | |
| setCurrency, | |
| handleChange, | |
| setActiveKey, | |
| showRatio, | |
| setShowRatio, | |
| viewMode, | |
| setViewMode, | |
| filterGroup, | |
| setFilterGroup, | |
| handleGroupClick, | |
| filterQuotaType, | |
| setFilterQuotaType, | |
| filterEndpointType, | |
| setFilterEndpointType, | |
| filterVendor, | |
| setFilterVendor, | |
| filterTag, | |
| setFilterTag, | |
| currentPage, | |
| setCurrentPage, | |
| tokenUnit, | |
| setTokenUnit, | |
| loading, | |
| t, | |
| ...categoryProps | |
| }) => { | |
| const { | |
| quotaTypeModels, | |
| endpointTypeModels, | |
| vendorModels, | |
| tagModels, | |
| groupCountModels, | |
| } = usePricingFilterCounts({ | |
| models: categoryProps.models, | |
| filterGroup, | |
| filterQuotaType, | |
| filterEndpointType, | |
| filterVendor, | |
| filterTag, | |
| searchValue: categoryProps.searchValue, | |
| }); | |
| const handleResetFilters = () => | |
| resetPricingFilters({ | |
| handleChange, | |
| setShowWithRecharge, | |
| setCurrency, | |
| setShowRatio, | |
| setViewMode, | |
| setFilterGroup, | |
| setFilterQuotaType, | |
| setFilterEndpointType, | |
| setFilterVendor, | |
| setFilterTag, | |
| setCurrentPage, | |
| setTokenUnit, | |
| }); | |
| return ( | |
| <div className='p-2'> | |
| <div className='flex items-center justify-between mb-6'> | |
| <div className='text-lg font-semibold text-gray-800'>{t('筛选')}</div> | |
| <Button | |
| theme='outline' | |
| type='tertiary' | |
| onClick={handleResetFilters} | |
| className='text-gray-500 hover:text-gray-700' | |
| > | |
| {t('重置')} | |
| </Button> | |
| </div> | |
| <PricingVendors | |
| filterVendor={filterVendor} | |
| setFilterVendor={setFilterVendor} | |
| models={vendorModels} | |
| allModels={categoryProps.models} | |
| loading={loading} | |
| t={t} | |
| /> | |
| <PricingTags | |
| filterTag={filterTag} | |
| setFilterTag={setFilterTag} | |
| models={tagModels} | |
| allModels={categoryProps.models} | |
| loading={loading} | |
| t={t} | |
| /> | |
| <PricingGroups | |
| filterGroup={filterGroup} | |
| setFilterGroup={handleGroupClick} | |
| usableGroup={categoryProps.usableGroup} | |
| groupRatio={categoryProps.groupRatio} | |
| models={groupCountModels} | |
| loading={loading} | |
| t={t} | |
| /> | |
| <PricingQuotaTypes | |
| filterQuotaType={filterQuotaType} | |
| setFilterQuotaType={setFilterQuotaType} | |
| models={quotaTypeModels} | |
| loading={loading} | |
| t={t} | |
| /> | |
| <PricingEndpointTypes | |
| filterEndpointType={filterEndpointType} | |
| setFilterEndpointType={setFilterEndpointType} | |
| models={endpointTypeModels} | |
| allModels={categoryProps.models} | |
| loading={loading} | |
| t={t} | |
| /> | |
| </div> | |
| ); | |
| }; | |
| export default PricingSidebar; | |