| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import React from 'react'; |
| import { Tag, Space, Skeleton } from '@douyinfe/semi-ui'; |
| import { renderQuota } from '../../../helpers'; |
| import CompactModeToggle from '../../common/ui/CompactModeToggle'; |
| import { useMinimumLoadingTime } from '../../../hooks/common/useMinimumLoadingTime'; |
|
|
| const LogsActions = ({ |
| stat, |
| loadingStat, |
| showStat, |
| compactMode, |
| setCompactMode, |
| t, |
| }) => { |
| const showSkeleton = useMinimumLoadingTime(loadingStat); |
| const needSkeleton = !showStat || showSkeleton; |
|
|
| const placeholder = ( |
| <Space> |
| <Skeleton.Title style={{ width: 108, height: 21, borderRadius: 6 }} /> |
| <Skeleton.Title style={{ width: 65, height: 21, borderRadius: 6 }} /> |
| <Skeleton.Title style={{ width: 64, height: 21, borderRadius: 6 }} /> |
| </Space> |
| ); |
|
|
| return ( |
| <div className='flex flex-col md:flex-row justify-between items-start md:items-center gap-2 w-full'> |
| <Skeleton loading={needSkeleton} active placeholder={placeholder}> |
| <Space> |
| <Tag |
| color='blue' |
| style={{ |
| fontWeight: 500, |
| boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', |
| padding: 13, |
| }} |
| className='!rounded-lg' |
| > |
| {t('消耗额度')}: {renderQuota(stat.quota)} |
| </Tag> |
| <Tag |
| color='pink' |
| style={{ |
| fontWeight: 500, |
| boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', |
| padding: 13, |
| }} |
| className='!rounded-lg' |
| > |
| RPM: {stat.rpm} |
| </Tag> |
| <Tag |
| color='white' |
| style={{ |
| border: 'none', |
| boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', |
| fontWeight: 500, |
| padding: 13, |
| }} |
| className='!rounded-lg' |
| > |
| TPM: {stat.tpm} |
| </Tag> |
| </Space> |
| </Skeleton> |
| |
| <CompactModeToggle |
| compactMode={compactMode} |
| setCompactMode={setCompactMode} |
| t={t} |
| /> |
| </div> |
| ); |
| }; |
|
|
| export default LogsActions; |
|
|