| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import React from 'react'; |
| import { Layout, ImagePreview } from '@douyinfe/semi-ui'; |
| import PricingSidebar from './PricingSidebar'; |
| import PricingContent from './content/PricingContent'; |
| import ModelDetailSideSheet from '../modal/ModelDetailSideSheet'; |
| import { useModelPricingData } from '../../../../hooks/model-pricing/useModelPricingData'; |
| import { useIsMobile } from '../../../../hooks/common/useIsMobile'; |
|
|
| const PricingPage = () => { |
| const pricingData = useModelPricingData(); |
| const { Sider, Content } = Layout; |
| const isMobile = useIsMobile(); |
| const [showRatio, setShowRatio] = React.useState(false); |
| const [viewMode, setViewMode] = React.useState('card'); |
| const allProps = { |
| ...pricingData, |
| showRatio, |
| setShowRatio, |
| viewMode, |
| setViewMode, |
| }; |
|
|
| return ( |
| <div className='bg-white'> |
| <Layout className='pricing-layout'> |
| {!isMobile && ( |
| <Sider className='pricing-scroll-hide pricing-sidebar'> |
| <PricingSidebar {...allProps} /> |
| </Sider> |
| )} |
| |
| <Content className='pricing-scroll-hide pricing-content'> |
| <PricingContent |
| {...allProps} |
| isMobile={isMobile} |
| sidebarProps={allProps} |
| /> |
| </Content> |
| </Layout> |
| |
| <ImagePreview |
| src={pricingData.modalImageUrl} |
| visible={pricingData.isModalOpenurl} |
| onVisibleChange={(visible) => pricingData.setIsModalOpenurl(visible)} |
| /> |
| |
| <ModelDetailSideSheet |
| visible={pricingData.showModelDetail} |
| onClose={pricingData.closeModelDetail} |
| modelData={pricingData.selectedModel} |
| groupRatio={pricingData.groupRatio} |
| usableGroup={pricingData.usableGroup} |
| currency={pricingData.currency} |
| tokenUnit={pricingData.tokenUnit} |
| displayPrice={pricingData.displayPrice} |
| showRatio={allProps.showRatio} |
| vendorsMap={pricingData.vendorsMap} |
| endpointMap={pricingData.endpointMap} |
| autoGroups={pricingData.autoGroups} |
| t={pricingData.t} |
| /> |
| </div> |
| ); |
| }; |
|
|
| export default PricingPage; |
|
|