Fixed metrics display.

This commit is contained in:
Mike Cao 2023-03-31 05:55:28 -07:00
parent 2172dddd1c
commit 9dd35b3766
20 changed files with 345 additions and 808 deletions

View file

@ -1,19 +1,42 @@
import FilterLink from 'components/common/FilterLink';
import FilterButtons from 'components/common/FilterButtons';
import MetricsTable from './MetricsTable';
import useMessages from 'hooks/useMessages';
import usePageQuery from 'hooks/usePageQuery';
export default function PagesTable({ websiteId, ...props }) {
export default function PagesTable({ websiteId, showFilters, ...props }) {
const {
router,
resolveUrl,
query: { view },
} = usePageQuery();
const { formatMessage, labels } = useMessages();
const renderLink = ({ x: url }) => {
return <FilterLink id="url" value={url} />;
const handleSelect = key => {
router.push(resolveUrl({ view: key }), null, { shallow: true });
};
const buttons = [
{
label: formatMessage(labels.url),
key: 'url',
},
{
label: formatMessage(labels.title),
key: 'title',
},
];
const renderLink = ({ x }) => {
return <FilterLink id={view} value={x || `(${formatMessage(labels.none)})`} />;
};
return (
<>
{showFilters && <FilterButtons items={buttons} selectedKey={view} onSelect={handleSelect} />}
<MetricsTable
title={formatMessage(labels.pages)}
type="url"
type={view}
metric={formatMessage(labels.views)}
websiteId={websiteId}
renderLabel={renderLink}