mirror of
https://github.com/luxfi/market.git
synced 2026-09-24 00:25:57 +00:00
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { ToggleGroup, ToggleGroupItem, Text } from '../primitives'
|
|
import { FC } from 'react'
|
|
|
|
export type CollectionsTableSortingOption = typeof sortingOptions[number]
|
|
|
|
const sortingOptions = ['1day', '7day', '30day', 'allTime'] as const
|
|
|
|
const nameForSortingOption = (
|
|
option: CollectionsTableSortingOption,
|
|
compact: boolean
|
|
) => {
|
|
switch (option) {
|
|
case '1day':
|
|
return compact ? '24h' : '24 hours'
|
|
case '7day':
|
|
return compact ? '7d' : '7 days'
|
|
case '30day':
|
|
return compact ? '30d' : '30 days'
|
|
case 'allTime':
|
|
return compact ? 'All' : 'All Time'
|
|
}
|
|
}
|
|
|
|
type Props = {
|
|
compact?: boolean
|
|
option: CollectionsTableSortingOption
|
|
onOptionSelected: (option: CollectionsTableSortingOption) => void
|
|
}
|
|
|
|
const CollectionsTableTimeToggle: FC<Props> = ({
|
|
compact = false,
|
|
option,
|
|
onOptionSelected,
|
|
}) => {
|
|
return (
|
|
<ToggleGroup
|
|
type="single"
|
|
value={option}
|
|
onValueChange={(value) => {
|
|
onOptionSelected(value as CollectionsTableSortingOption)
|
|
}}
|
|
css={{ maxWidth: 'max-content' }}
|
|
>
|
|
{sortingOptions.map((optionItem) => (
|
|
<ToggleGroupItem
|
|
key={optionItem}
|
|
value={optionItem}
|
|
disabled={optionItem === option}
|
|
css={{ py: '$3' }}
|
|
>
|
|
<Text style="subtitle1">
|
|
{nameForSortingOption(optionItem, compact)}
|
|
</Text>
|
|
</ToggleGroupItem>
|
|
))}
|
|
</ToggleGroup>
|
|
)
|
|
}
|
|
|
|
export default CollectionsTableTimeToggle
|