import React from 'react'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ menuGeneralSettings: 'General Settings', menuPlexSettings: 'Plex', menuServices: 'Services', menuNotifications: 'Notifications', menuLogs: 'Logs', menuJobs: 'Jobs & Cache', menuAbout: 'About', }); interface SettingsRoute { text: string; route: string; regex: RegExp; } const SettingsLayout: React.FC = ({ children }) => { const router = useRouter(); const intl = useIntl(); const settingsRoutes: SettingsRoute[] = [ { text: intl.formatMessage(messages.menuGeneralSettings), route: '/settings/main', regex: /^\/settings(\/main)?$/, }, { text: intl.formatMessage(messages.menuPlexSettings), route: '/settings/plex', regex: /^\/settings\/plex/, }, { text: intl.formatMessage(messages.menuServices), route: '/settings/services', regex: /^\/settings\/services/, }, { text: intl.formatMessage(messages.menuNotifications), route: '/settings/notifications/email', regex: /^\/settings\/notifications/, }, { text: intl.formatMessage(messages.menuLogs), route: '/settings/logs', regex: /^\/settings\/logs/, }, { text: intl.formatMessage(messages.menuJobs), route: '/settings/jobs', regex: /^\/settings\/jobs/, }, { text: intl.formatMessage(messages.menuAbout), route: '/settings/about', regex: /^\/settings\/about/, }, ]; const activeLinkColor = 'border-indigo-600 text-indigo-500 focus:outline-none focus:text-indigo-500 focus:border-indigo-500'; const inactiveLinkColor = 'border-transparent text-gray-500 hover:text-gray-400 hover:border-gray-300 focus:outline-none focus:text-gray-4700 focus:border-gray-300'; const SettingsLink: React.FC<{ route: string; regex: RegExp; isMobile?: boolean; }> = ({ children, route, regex, isMobile = false }) => { if (isMobile) { return ; } return ( {children} ); }; return ( <>
{children}
); }; export default SettingsLayout;