diff --git a/src/app/(main)/NavBar.js b/src/app/(main)/NavBar.js
index 211adf5f..e241a059 100644
--- a/src/app/(main)/NavBar.js
+++ b/src/app/(main)/NavBar.js
@@ -14,6 +14,7 @@ import styles from './NavBar.module.css';
export function NavBar() {
const pathname = usePathname();
const { formatMessage, labels } = useMessages();
+ const cloudMode = Boolean(process.env.cloudMode);
const links = [
{ label: formatMessage(labels.dashboard), url: '/dashboard' },
@@ -22,6 +23,40 @@ export function NavBar() {
{ label: formatMessage(labels.settings), url: '/settings' },
].filter(n => n);
+ const menuItems = [
+ {
+ label: formatMessage(labels.dashboard),
+ url: '/dashboard',
+ },
+ !cloudMode && {
+ label: formatMessage(labels.settings),
+ url: '/settings',
+ children: [
+ {
+ label: formatMessage(labels.websites),
+ url: '/settings/websites',
+ },
+ {
+ label: formatMessage(labels.teams),
+ url: '/settings/teams',
+ },
+ {
+ label: formatMessage(labels.users),
+ url: '/settings/users',
+ },
+ {
+ label: formatMessage(labels.profile),
+ url: '/settings/profile',
+ },
+ ],
+ },
+ cloudMode && {
+ label: formatMessage(labels.profile),
+ url: '/settings/profile',
+ },
+ !cloudMode && { label: formatMessage(labels.logout), url: '/logout' },
+ ].filter(n => n);
+
return (
@@ -49,7 +84,7 @@ export function NavBar() {
-
+
);
diff --git a/src/app/(main)/Shell.tsx b/src/app/(main)/Shell.tsx
index 980abb62..69ceff1f 100644
--- a/src/app/(main)/Shell.tsx
+++ b/src/app/(main)/Shell.tsx
@@ -1,9 +1,10 @@
'use client';
import Script from 'next/script';
import { usePathname } from 'next/navigation';
-import UpdateNotice from 'components/common/UpdateNotice';
import { useRequireLogin, useConfig } from 'components/hooks';
+import UpdateNotice from './UpdateNotice';
+
export function Shell({ children }) {
const { user } = useRequireLogin();
const config = useConfig();
diff --git a/src/components/common/UpdateNotice.js b/src/app/(main)/UpdateNotice.js
similarity index 100%
rename from src/components/common/UpdateNotice.js
rename to src/app/(main)/UpdateNotice.js
diff --git a/src/components/common/UpdateNotice.module.css b/src/app/(main)/UpdateNotice.module.css
similarity index 100%
rename from src/components/common/UpdateNotice.module.css
rename to src/app/(main)/UpdateNotice.module.css
diff --git a/src/components/common/HamburgerButton.js b/src/components/common/HamburgerButton.js
index f97006ef..0eddad0f 100644
--- a/src/components/common/HamburgerButton.js
+++ b/src/components/common/HamburgerButton.js
@@ -2,46 +2,9 @@ import { Button, Icon } from 'react-basics';
import { useState } from 'react';
import MobileMenu from './MobileMenu';
import Icons from 'components/icons';
-import useMessages from 'components/hooks/useMessages';
-export function HamburgerButton() {
- const { formatMessage, labels } = useMessages();
+export function HamburgerButton({ menuItems }) {
const [active, setActive] = useState(false);
- const cloudMode = Boolean(process.env.cloudMode);
-
- const menuItems = [
- {
- label: formatMessage(labels.dashboard),
- url: '/dashboard',
- },
- !cloudMode && {
- label: formatMessage(labels.settings),
- url: '/settings',
- children: [
- {
- label: formatMessage(labels.websites),
- url: '/settings/websites',
- },
- {
- label: formatMessage(labels.teams),
- url: '/settings/teams',
- },
- {
- label: formatMessage(labels.users),
- url: '/settings/users',
- },
- {
- label: formatMessage(labels.profile),
- url: '/settings/profile',
- },
- ],
- },
- cloudMode && {
- label: formatMessage(labels.profile),
- url: '/settings/profile',
- },
- !cloudMode && { label: formatMessage(labels.logout), url: '/logout' },
- ].filter(n => n);
const handleClick = () => setActive(state => !state);
const handleClose = () => setActive(false);
diff --git a/src/components/common/WorldMap.js b/src/components/metrics/WorldMap.js
similarity index 100%
rename from src/components/common/WorldMap.js
rename to src/components/metrics/WorldMap.js
diff --git a/src/components/common/WorldMap.module.css b/src/components/metrics/WorldMap.module.css
similarity index 100%
rename from src/components/common/WorldMap.module.css
rename to src/components/metrics/WorldMap.module.css
diff --git a/src/index.ts b/src/index.ts
index a6bb4c6c..01ceb7d1 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,18 +1,15 @@
export * from 'components/hooks/useApi';
export * from 'components/hooks/useConfig';
-export * from 'components/hooks/useCountryNames';
export * from 'components/hooks/useDateRange';
export * from 'components/hooks/useDocumentClick';
export * from 'components/hooks/useEscapeKey';
+export * from 'components/hooks/useFilterQuery';
export * from 'components/hooks/useFilters';
export * from 'components/hooks/useForceUpdate';
export * from 'components/hooks/useFormat';
-export * from 'components/hooks/useLanguageNames';
export * from 'components/hooks/useLocale';
export * from 'components/hooks/useMessages';
export * from 'components/hooks/useNavigation';
-export * from 'components/hooks/useReport';
-export * from 'components/hooks/useReports';
export * from 'components/hooks/useRequireLogin';
export * from 'components/hooks/useShareToken';
export * from 'components/hooks/useSticky';
@@ -21,7 +18,7 @@ export * from 'components/hooks/useTimezone';
export * from 'components/hooks/useUser';
export * from 'components/hooks/useWebsite';
-export * from './app/(main)/settings/teams/[id]/TeamWebsiteAddForm';
+export * from 'app/(main)/settings/teams/[id]/TeamWebsiteAddForm';
export * from 'app/(main)/settings/teams/[id]/TeamEditForm';
export * from 'app/(main)/settings/teams/[id]/TeamMemberRemoveButton';
export * from 'app/(main)/settings/teams/[id]/TeamMembers';
@@ -44,8 +41,22 @@ export * from 'app/(main)/settings/websites/[id]/TrackingCode';
export * from 'app/(main)/settings/websites/[id]/WebsiteDeleteForm';
export * from 'app/(main)/settings/websites/[id]/WebsiteEditForm';
export * from 'app/(main)/settings/websites/[id]/WebsiteResetForm';
+
export * from 'app/(main)/settings/websites/WebsiteAddForm';
export * from 'app/(main)/settings/websites/WebsitesHeader';
export * from 'app/(main)/settings/websites/WebsiteSettings';
-export * from './app/(main)/settings/websites/WebsitesDataTable';
+export * from 'app/(main)/settings/websites/WebsitesDataTable';
export * from 'app/(main)/settings/websites/WebsitesTable';
+
+export * from 'components/common/ConfirmDeleteForm';
+export * from 'components/common/DataTable';
+export * from 'components/common/Empty';
+export * from 'components/common/ErrorBoundary';
+export * from 'components/common/Favicon';
+export * from 'components/common/FilterButtons';
+export * from 'components/common/FilterLink';
+export * from 'components/common/HamburgerButton';
+export * from 'components/common/HoverTooltip';
+export * from 'components/common/LinkButton';
+export * from 'components/common/MobileMenu';
+export * from 'components/common/Pager';