aboutsummaryrefslogtreecommitdiff
path: root/modern/src/settings/OptionsLayout/useRoutes.js
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-04-17 13:33:27 -0700
committerAnton Tananaev <anton@traccar.org>2022-04-17 13:33:27 -0700
commit6505a13e0037d5de5737e940907cc62c4a9107bc (patch)
treec4b4ceeb0a8b4bd7b688ca4c6f1fd59834cc9f6f /modern/src/settings/OptionsLayout/useRoutes.js
parente470eeb4fcc923bc54968a6561f66c75dab288b9 (diff)
downloadtrackermap-web-6505a13e0037d5de5737e940907cc62c4a9107bc.tar.gz
trackermap-web-6505a13e0037d5de5737e940907cc62c4a9107bc.tar.bz2
trackermap-web-6505a13e0037d5de5737e940907cc62c4a9107bc.zip
Refactor settings layout
Diffstat (limited to 'modern/src/settings/OptionsLayout/useRoutes.js')
-rw-r--r--modern/src/settings/OptionsLayout/useRoutes.js95
1 files changed, 0 insertions, 95 deletions
diff --git a/modern/src/settings/OptionsLayout/useRoutes.js b/modern/src/settings/OptionsLayout/useRoutes.js
deleted file mode 100644
index 70662e4d..00000000
--- a/modern/src/settings/OptionsLayout/useRoutes.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import React, { useMemo } from 'react';
-import { useSelector } from 'react-redux';
-import CreateIcon from '@material-ui/icons/Create';
-import NotificationsIcon from '@material-ui/icons/Notifications';
-import FolderIcon from '@material-ui/icons/Folder';
-import PersonIcon from '@material-ui/icons/Person';
-import StorageIcon from '@material-ui/icons/Storage';
-import BuildIcon from '@material-ui/icons/Build';
-import PeopleIcon from '@material-ui/icons/People';
-import BarChartIcon from '@material-ui/icons/BarChart';
-import TodayIcon from '@material-ui/icons/Today';
-import { useTranslation } from '../../LocalizationProvider';
-
-const useAdminRoutes = (t) => useMemo(() => [
- { subheader: t('userAdmin') },
- {
- name: t('settingsServer'),
- href: '/admin/server',
- icon: <StorageIcon />,
- },
- {
- name: t('settingsUsers'),
- href: '/admin/users',
- icon: <PeopleIcon />,
- },
- {
- name: t('statisticsTitle'),
- href: '/admin/statistics',
- icon: <BarChartIcon />,
- },
-], [t]);
-
-const useMainRoutes = (t, userId) => useMemo(() => [
- {
- name: t('settingsUser'),
- href: `/user/${userId}`,
- icon: <PersonIcon />,
- },
- {
- match: 'geofence',
- name: t('sharedGeofences'),
- href: '/geofences',
- icon: <CreateIcon />,
- },
- {
- match: 'notification',
- name: t('sharedNotifications'),
- href: '/settings/notifications',
- icon: <NotificationsIcon />,
- },
- {
- match: 'group',
- name: t('settingsGroups'),
- href: '/settings/groups',
- icon: <FolderIcon />,
- },
- {
- match: 'driver',
- name: t('sharedDrivers'),
- href: '/settings/drivers',
- icon: <PersonIcon />,
- },
- {
- match: 'calendar',
- name: t('sharedCalendars'),
- href: '/settings/calendars',
- icon: <TodayIcon />,
- },
- {
- match: 'attribute',
- name: t('sharedComputedAttributes'),
- href: '/settings/attributes',
- icon: <StorageIcon />,
- },
- {
- match: 'maintenance',
- name: t('sharedMaintenance'),
- href: '/settings/maintenances',
- icon: <BuildIcon />,
- },
-], [t, userId]);
-
-export default () => {
- const t = useTranslation();
-
- const isAdmin = useSelector((state) => state.session.user?.administrator);
- const userId = useSelector((state) => state.session.user?.id);
-
- const mainRoutes = useMainRoutes(t, userId);
- const adminRoutes = useAdminRoutes(t);
-
- return useMemo(() => [...mainRoutes, ...(isAdmin ? adminRoutes : [])], [
- mainRoutes, isAdmin, adminRoutes,
- ]);
-};