fix: only show mediaserver settings for current active mediaserver

This commit is contained in:
notfakie
2022-06-02 18:47:22 +12:00
parent 3e7d64eb47
commit 739f5f9c9a

View File

@@ -1,9 +1,11 @@
import getConfig from 'next/config';
import React from 'react'; import React from 'react';
import { defineMessages, useIntl } from 'react-intl'; import { defineMessages, useIntl } from 'react-intl';
import { MediaServerType } from '../../../server/constants/server';
import useSettings from '../../hooks/useSettings';
import globalMessages from '../../i18n/globalMessages'; import globalMessages from '../../i18n/globalMessages';
import PageTitle from '../Common/PageTitle'; import PageTitle from '../Common/PageTitle';
import SettingsTabs, { SettingsRoute } from '../Common/SettingsTabs'; import SettingsTabs, { SettingsRoute } from '../Common/SettingsTabs';
import getConfig from 'next/config';
const messages = defineMessages({ const messages = defineMessages({
menuGeneralSettings: 'General', menuGeneralSettings: 'General',
@@ -20,6 +22,7 @@ const messages = defineMessages({
const SettingsLayout: React.FC = ({ children }) => { const SettingsLayout: React.FC = ({ children }) => {
const intl = useIntl(); const intl = useIntl();
const { publicRuntimeConfig } = getConfig(); const { publicRuntimeConfig } = getConfig();
const settings = useSettings();
const settingsRoutes: SettingsRoute[] = [ const settingsRoutes: SettingsRoute[] = [
{ {
text: intl.formatMessage(messages.menuGeneralSettings), text: intl.formatMessage(messages.menuGeneralSettings),
@@ -31,16 +34,17 @@ const SettingsLayout: React.FC = ({ children }) => {
route: '/settings/users', route: '/settings/users',
regex: /^\/settings\/users/, regex: /^\/settings\/users/,
}, },
{ settings.currentSettings.mediaServerType === MediaServerType.PLEX
text: intl.formatMessage(messages.menuPlexSettings), ? {
route: '/settings/plex', text: intl.formatMessage(messages.menuPlexSettings),
regex: /^\/settings\/plex/, route: '/settings/plex',
}, regex: /^\/settings\/plex/,
{ }
text: getAvalaibleMediaServerName(), : {
route: '/settings/jellyfin', text: getAvailableMediaServerName(),
regex: /^\/settings\/jellyfin/, route: '/settings/jellyfin',
}, regex: /^\/settings\/jellyfin/,
},
{ {
text: intl.formatMessage(messages.menuServices), text: intl.formatMessage(messages.menuServices),
route: '/settings/services', route: '/settings/services',
@@ -77,15 +81,10 @@ const SettingsLayout: React.FC = ({ children }) => {
<div className="mt-10 text-white">{children}</div> <div className="mt-10 text-white">{children}</div>
</> </>
); );
function getAvalaibleMediaServerName() { function getAvailableMediaServerName() {
if (publicRuntimeConfig.JELLYFIN_TYPE === 'emby') {
return intl.formatMessage(messages.menuJellyfinSettings, {
mediaServerName: 'Emby',
});
}
return intl.formatMessage(messages.menuJellyfinSettings, { return intl.formatMessage(messages.menuJellyfinSettings, {
mediaServerName: 'Jellyfin', mediaServerName:
publicRuntimeConfig.JELLYFIN_TYPE === 'emby' ? 'Emby' : 'Jellyfin',
}); });
} }
}; };