Custom date range select.

This commit is contained in:
Mike Cao 2025-04-19 10:09:59 -07:00
parent e79f4717e7
commit 52e1440089
11 changed files with 247 additions and 314 deletions

View file

@ -1,22 +1,27 @@
import { Key } from 'react';
import { Text, Row, Button, Flexbox } from '@umami/react-zen';
import { useState } from 'react';
import { ToggleGroup, ToggleGroupItem } from '@umami/react-zen';
export interface FilterButtonsProps {
items: any[];
selectedKey?: Key;
onSelect: (key: any) => void;
items: { id: string; label: string }[];
value: string;
onChange?: (value: string) => void;
}
export function FilterButtons({ items, selectedKey, onSelect }: FilterButtonsProps) {
export function FilterButtons({ items, value, onChange }: FilterButtonsProps) {
const [selected, setSelected] = useState(value);
const handleChange = (value: string) => {
setSelected(value);
onChange?.(value);
};
return (
<Flexbox justifyContent="center">
<Row>
{items.map(({ key, label }) => (
<Button key={key} onPress={() => onSelect(key)}>
<Text weight={key === selectedKey ? 'bold' : undefined}>{label}</Text>
</Button>
))}
</Row>
</Flexbox>
<ToggleGroup value={[selected]} onChange={e => handleChange(e[0])}>
{items.map(({ id, label }) => (
<ToggleGroupItem key={id} id={id}>
{label}
</ToggleGroupItem>
))}
</ToggleGroup>
);
}