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 { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger } from '@/app/components/base/portal-to-follow-elem'
import { useBoolean } from 'ahooks' import { useBoolean } from 'ahooks'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
@ -22,6 +22,16 @@ const VersionSelector: React.FC<VersionSelectorProps> = ({ versionLen, value, on
set: handleOpenSet, set: handleOpenSet,
}] = useBoolean(false) }] = 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) => ({ const versions = Array.from({ length: versionLen }, (_, index) => ({
label: `Version ${index + 1}${index === versionLen - 1 ? ' · Latest' : ''}`, label: `Version ${index + 1}${index === versionLen - 1 ? ' · Latest' : ''}`,
value: index, value: index,
@ -37,16 +47,16 @@ const VersionSelector: React.FC<VersionSelectorProps> = ({ versionLen, value, on
crossAxis: -8, crossAxis: -8,
}} }}
open={isOpen} open={isOpen}
onOpenChange={handleOpenSet} onOpenChange={handleOpen}
> >
<PortalToFollowElemTrigger <PortalToFollowElemTrigger
onClick={handleOpenToggle} onClick={handleToggle}
asChild 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> <div>Version {value + 1}{isLatest && ' · Latest'}</div>
<RiArrowDownSLine className='size-3 ' /> {moreThanOneVersion && <RiArrowDownSLine className='size-3 ' />}
</div> </div>
</PortalToFollowElemTrigger > </PortalToFollowElemTrigger >
<PortalToFollowElemContent className={cn( <PortalToFollowElemContent className={cn(

Loading…
Cancel
Save