mirror of
https://github.com/umami-software/umami.git
synced 2026-02-06 21:57:16 +01:00
Custom date range select.
This commit is contained in:
parent
e79f4717e7
commit
52e1440089
11 changed files with 247 additions and 314 deletions
|
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue