chore: version show

feat/enchance-prompt-and-code-fe
Joel 7 months ago
parent ed737beb4a
commit a5653f253a

@ -1,4 +1,4 @@
import React from 'react'
import React, { useCallback } from 'react'
import { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger } from '@/app/components/base/portal-to-follow-elem'
import { useBoolean } from 'ahooks'
import cn from '@/utils/classnames'
@ -22,6 +22,16 @@ const VersionSelector: React.FC<VersionSelectorProps> = ({ versionLen, value, on
set: handleOpenSet,
}] = useBoolean(false)
const moreThanOneVersion = versionLen > 1
const handleOpen = useCallback((value: boolean) => {
if (moreThanOneVersion)
handleOpenSet(value)
}, [moreThanOneVersion, handleOpenToggle])
const handleToggle = useCallback(() => {
if (moreThanOneVersion)
handleOpenToggle()
}, [moreThanOneVersion, handleOpenToggle])
const versions = Array.from({ length: versionLen }, (_, index) => ({
label: `Version ${index + 1}${index === versionLen - 1 ? ' · Latest' : ''}`,
value: index,
@ -37,16 +47,16 @@ const VersionSelector: React.FC<VersionSelectorProps> = ({ versionLen, value, on
crossAxis: -8,
}}
open={isOpen}
onOpenChange={handleOpenSet}
onOpenChange={handleOpen}
>
<PortalToFollowElemTrigger
onClick={handleOpenToggle}
onClick={handleToggle}
asChild
>
<div className='system-xs-medium flex cursor-pointer items-center text-text-secondary'>
<div className={cn('system-xs-medium flex items-center text-text-secondary', moreThanOneVersion && 'cursor-pointer')}>
<div>Version {value + 1}{isLatest && ' · Latest'}</div>
<RiArrowDownSLine className='size-3 ' />
{moreThanOneVersion && <RiArrowDownSLine className='size-3 ' />}
</div>
</PortalToFollowElemTrigger >
<PortalToFollowElemContent className={cn(

Loading…
Cancel
Save