diff --git a/components/common/HamburgerButton.js b/components/common/HamburgerButton.js
index 4277c48d..97050a2a 100644
--- a/components/common/HamburgerButton.js
+++ b/components/common/HamburgerButton.js
@@ -1,30 +1,31 @@
import { Button, Icon } from 'react-basics';
import { useState } from 'react';
-import { FormattedMessage } from 'react-intl';
import MobileMenu from './MobileMenu';
import Icons from 'components/icons';
+import useMessages from 'hooks/useMessages';
import styles from './HamburgerButton.module.css';
-const menuItems = [
- {
- label: ,
- value: '/dashboard',
- },
- { label: , value: '/realtime' },
- {
- label: ,
- value: '/input',
- },
- {
- label: ,
- value: '/input/profile',
- },
- { label: , value: '/logout' },
-];
-
export default function HamburgerButton() {
+ const { formatMessage, labels } = useMessages();
const [active, setActive] = useState(false);
+ const menuItems = [
+ {
+ label: formatMessage(labels.dashboard),
+ value: '/dashboard',
+ },
+ { label: formatMessage(labels.realtime), value: '/realtime' },
+ {
+ label: formatMessage(labels.settings),
+ value: '/settings',
+ },
+ {
+ label: formatMessage(labels.profile),
+ value: '/settings/profile',
+ },
+ { label: formatMessage(labels.logout), value: '/logout' },
+ ];
+
function handleClick() {
setActive(state => !state);
}
diff --git a/components/common/NoData.js b/components/common/NoData.js
index 4a23675d..686ab4f2 100644
--- a/components/common/NoData.js
+++ b/components/common/NoData.js
@@ -1,12 +1,12 @@
import classNames from 'classnames';
-import { FormattedMessage } from 'react-intl';
import styles from './NoData.module.css';
+import useMessages from 'hooks/useMessages';
function NoData({ className }) {
+ const { formatMessage, messages } = useMessages();
+
return (
-
-
-
+ {formatMessage(messages.noData)}
);
}
diff --git a/components/metrics/BrowsersTable.js b/components/metrics/BrowsersTable.js
index 013491d8..c205ca99 100644
--- a/components/metrics/BrowsersTable.js
+++ b/components/metrics/BrowsersTable.js
@@ -1,9 +1,11 @@
-import { FormattedMessage } from 'react-intl';
import FilterLink from 'components/common/FilterLink';
import MetricsTable from 'components/metrics/MetricsTable';
import { BROWSERS } from 'lib/constants';
+import useMessages from 'hooks/useMessages';
export default function BrowsersTable({ websiteId, ...props }) {
+ const { formatMessage, labels } = useMessages();
+
function renderLink({ x: browser }) {
return ;
}
@@ -11,9 +13,9 @@ export default function BrowsersTable({ websiteId, ...props }) {
return (
}
+ title={formatMessage(labels.browsers)}
type="browser"
- metric={}
+ metric={formatMessage(labels.visitors)}
websiteId={websiteId}
renderLabel={renderLink}
/>
diff --git a/components/metrics/DataTable.js b/components/metrics/DataTable.js
index da77868e..4a132780 100644
--- a/components/metrics/DataTable.js
+++ b/components/metrics/DataTable.js
@@ -7,6 +7,7 @@ import { FormattedMessage } from 'react-intl';
import NoData from 'components/common/NoData';
import { formatNumber, formatLongNumber } from 'lib/format';
import styles from './DataTable.module.css';
+import useMessages from '../../hooks/useMessages';
export default function DataTable({
data = [],
@@ -14,11 +15,11 @@ export default function DataTable({
metric,
className,
renderLabel,
- height,
animate = true,
virtualize = false,
showPercentage = true,
}) {
+ const { formatMessage, labels } = useMessages();
const [ref, bounds] = useMeasure();
const [format, setFormat] = useState(true);
const formatFunc = format ? formatLongNumber : formatNumber;
@@ -31,11 +32,7 @@ export default function DataTable({
return (
- }
+ label={renderLabel ? renderLabel(row) : label ?? formatMessage(labels.unknown)}
value={value}
percent={percent}
animate={animate && !virtualize}
diff --git a/components/metrics/ScreenTable.js b/components/metrics/ScreenTable.js
index bc3e39de..35fe42d2 100644
--- a/components/metrics/ScreenTable.js
+++ b/components/metrics/ScreenTable.js
@@ -1,13 +1,15 @@
import MetricsTable from './MetricsTable';
-import { FormattedMessage } from 'react-intl';
+import useMessages from 'hooks/useMessages';
export default function ScreenTable({ websiteId, ...props }) {
+ const { formatMessage, labels } = useMessages();
+
return (
}
+ title={formatMessage(labels.screens)}
type="screen"
- metric={}
+ metric={formatMessage(labels.visitors)}
websiteId={websiteId}
/>
);
diff --git a/package.json b/package.json
index ba76f180..b63935a2 100644
--- a/package.json
+++ b/package.json
@@ -28,9 +28,9 @@
"update-db": "prisma migrate deploy",
"check-db": "node scripts/check-db.js",
"copy-db-files": "node scripts/copy-db-files.js",
- "generate-lang": "npm-run-all extract-lang merge-lang",
- "extract-lang": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json",
- "merge-lang": "node scripts/merge-lang.js",
+ "extract-messages": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json",
+ "merge-messages": "node scripts/merge-messages.js",
+ "generate-lang": "npm-run-all extract-messages merge-messages",
"format-lang": "node scripts/format-lang.js",
"compile-lang": "formatjs compile-folder --ast build public/intl/messages",
"check-lang": "node scripts/check-lang.js",
diff --git a/scripts/merge-lang.js b/scripts/merge-messages.js
similarity index 100%
rename from scripts/merge-lang.js
rename to scripts/merge-messages.js