analytics / assets /js /dashboard /components /sort-button.tsx
Leon4gr45's picture
Upload folder using huggingface_hub
b2a00c5 verified
Raw
History Blame Contribute Delete
1.19 kB
import React, { ReactNode } from 'react'
import { cycleSortDirection } from '../hooks/use-metric-order-by'
import { SortDirection } from '../../types/query-api'
import classNames from 'classnames'
export const SortButton = ({
children,
toggleSort,
sortDirection
}: {
children: ReactNode
toggleSort: () => void
sortDirection: SortDirection | null
}) => {
const next = cycleSortDirection(sortDirection)
return (
<button
onClick={toggleSort}
className={classNames(
'group',
'hover:text-gray-700 dark:hover:text-gray-200 transition-colors duration-100',
'relative'
)}
>
{children}
<span
title={next.hint}
className={classNames(
'absolute',
'rounded inline-block size-4',
'ml-1',
{
asc: 'rotate-180',
desc: 'rotate-0'
}[sortDirection ?? next.direction],
!sortDirection && 'opacity-0',
!sortDirection && 'group-hover:opacity-100',
'group-hover:bg-gray-100 dark:group-hover:bg-gray-900',
'transition-all duration-100'
)}
>
</span>
</button>
)
}