diff --git a/components/messages.js b/components/messages.js index 9a72ff75..c29432b1 100644 --- a/components/messages.js +++ b/components/messages.js @@ -83,6 +83,7 @@ export const labels = defineMessages({ filterRaw: { id: 'label.filter-raw', defaultMessage: 'Raw' }, views: { id: 'label.views', defaultMessage: 'View' }, none: { id: 'label.none', defaultMessage: 'None' }, + clearAll: { id: 'label.clear-all', defaultMessage: 'Clear all' }, }); export const messages = defineMessages({ diff --git a/components/metrics/FilterTags.js b/components/metrics/FilterTags.js index 75d38371..0e68504b 100644 --- a/components/metrics/FilterTags.js +++ b/components/metrics/FilterTags.js @@ -1,22 +1,29 @@ +import { useIntl } from 'react-intl'; import classNames from 'classnames'; import { safeDecodeURI } from 'next-basics'; -import { Button, Icon, Icons } from 'react-basics'; +import { Button, Icon, Icons, Text } from 'react-basics'; +import { labels } from 'components/messages'; import styles from './FilterTags.module.css'; export default function FilterTags({ className, params, onClick }) { + const { formatMessage } = useIntl(); + if (Object.keys(params).filter(key => params[key]).length === 0) { return null; } + return ( -
+
{Object.keys(params).map(key => { if (!params[key]) { return null; } return (
-
); })} +
); } diff --git a/components/metrics/WebsiteChart.js b/components/metrics/WebsiteChart.js index 1d23df7a..73b9b6da 100644 --- a/components/metrics/WebsiteChart.js +++ b/components/metrics/WebsiteChart.js @@ -34,7 +34,7 @@ export default function WebsiteChart({ const { router, resolve, - query: { url, referrer, os, browser, device, country }, + query: { view, url, referrer, os, browser, device, country }, } = usePageQuery(); const { get, useQuery } = useApi(); @@ -67,7 +67,11 @@ export default function WebsiteChart({ }, [data, startDate, endDate, unit]); function handleCloseFilter(param) { - router.push(resolve({ [param]: undefined })); + if (param === null) { + router.push(`/websites/${websiteId}/?view=${view}`); + } else { + router.push(resolve({ [param]: undefined })); + } } async function handleDateChange(value) { @@ -97,11 +101,11 @@ export default function WebsiteChart({ )} - + diff --git a/components/pages/realtime/RealtimeDashboard.js b/components/pages/realtime/RealtimeDashboard.js index 941d0f0c..552c726a 100644 --- a/components/pages/realtime/RealtimeDashboard.js +++ b/components/pages/realtime/RealtimeDashboard.js @@ -1,9 +1,9 @@ import { useState, useEffect, useMemo, useCallback } from 'react'; +import { Row, Column } from 'react-basics'; import { FormattedMessage } from 'react-intl'; import { subMinutes, startOfMinute } from 'date-fns'; import firstBy from 'thenby'; import Page from 'components/layout/Page'; -import GridLayout, { GridRow, GridColumn } from 'components/layout/GridLayout'; import RealtimeChart from 'components/metrics/RealtimeChart'; import RealtimeLog from 'components/metrics/RealtimeLog'; import RealtimeHeader from 'components/metrics/RealtimeHeader'; @@ -129,29 +129,27 @@ export default function RealtimeDashboard() {
- - - - - - - - - - - - } - metric={} - data={countries} - renderLabel={renderCountryName} - /> - - - - - - + + + + + + + + + + + } + metric={} + data={countries} + renderLabel={renderCountryName} + /> + + + + + ); }