| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| 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; |
|
|