2023-12-03 11:07:03 +00:00
|
|
|
import MetricsTable, { MetricsTableProps } from './MetricsTable';
|
2021-12-02 03:32:45 +00:00
|
|
|
import { percentFilter } from 'lib/filters';
|
2023-08-21 09:06:09 +00:00
|
|
|
import useLanguageNames from 'components/hooks/useLanguageNames';
|
|
|
|
|
import useLocale from 'components/hooks/useLocale';
|
|
|
|
|
import useMessages from 'components/hooks/useMessages';
|
2021-12-02 03:32:45 +00:00
|
|
|
|
2023-12-03 11:07:03 +00:00
|
|
|
export function LanguagesTable({
|
|
|
|
|
onDataLoad,
|
|
|
|
|
...props
|
|
|
|
|
}: { onDataLoad: (data: any) => void } & MetricsTableProps) {
|
2023-03-31 12:55:28 +00:00
|
|
|
const { formatMessage, labels } = useMessages();
|
2021-12-02 03:32:45 +00:00
|
|
|
const { locale } = useLocale();
|
|
|
|
|
const languageNames = useLanguageNames(locale);
|
|
|
|
|
|
2023-03-31 12:55:28 +00:00
|
|
|
const renderLabel = ({ x }) => {
|
|
|
|
|
return <div className={locale}>{languageNames[x?.split('-')[0]] ?? x}</div>;
|
|
|
|
|
};
|
2021-12-02 03:32:45 +00:00
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<MetricsTable
|
|
|
|
|
{...props}
|
2023-03-31 12:55:28 +00:00
|
|
|
title={formatMessage(labels.languages)}
|
2021-12-02 03:32:45 +00:00
|
|
|
type="language"
|
2023-03-31 12:55:28 +00:00
|
|
|
metric={formatMessage(labels.visitors)}
|
2021-12-02 03:32:45 +00:00
|
|
|
onDataLoad={data => onDataLoad?.(percentFilter(data))}
|
|
|
|
|
renderLabel={renderLabel}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
}
|
2023-04-21 15:00:42 +00:00
|
|
|
|
|
|
|
|
export default LanguagesTable;
|