Update events chart when filter selected. Closes #494

This commit is contained in:
Mike Cao 2022-03-17 20:56:43 -07:00
parent 7530de87d2
commit 607e6a7be1
2 changed files with 15 additions and 5 deletions

View file

@ -4,16 +4,18 @@ import MetricsTable from './MetricsTable';
import Tag from 'components/common/Tag';
import DropDown from 'components/common/DropDown';
import { eventTypeFilter } from 'lib/filters';
import usePageQuery from 'hooks/usePageQuery';
import styles from './EventsTable.module.css';
const EVENT_FILTER_DEFAULT = {
value: 'EVENT_FILTER_DEFAULT',
value: 'all',
label: <FormattedMessage id="label.all-events" defaultMessage="All events" />,
};
export default function EventsTable({ websiteId, ...props }) {
const [eventType, setEventType] = useState(EVENT_FILTER_DEFAULT.value);
const [eventTypes, setEventTypes] = useState([]);
const { resolve, router } = usePageQuery();
const dropDownOptions = [EVENT_FILTER_DEFAULT, ...eventTypes.map(t => ({ value: t, label: t }))];
@ -22,11 +24,16 @@ export default function EventsTable({ websiteId, ...props }) {
props.onDataLoad?.(data);
}
function handleChange(value) {
router.replace(resolve({ eventType: value === 'all' ? undefined : value }));
setEventType(value);
}
return (
<>
{eventTypes?.length > 1 && (
<div className={styles.filter}>
<DropDown value={eventType} options={dropDownOptions} onChange={setEventType} />
<DropDown value={eventType} options={dropDownOptions} onChange={handleChange} />
</div>
)}
<MetricsTable