Conditionaly media server name to replace every reference of jellyfin with emby in settings tab when environmental variable set
92 lines
2.5 KiB
TypeScript
92 lines
2.5 KiB
TypeScript
import React from 'react';
|
|
import { defineMessages, useIntl } from 'react-intl';
|
|
import globalMessages from '../../i18n/globalMessages';
|
|
import PageTitle from '../Common/PageTitle';
|
|
import SettingsTabs, { SettingsRoute } from '../Common/SettingsTabs';
|
|
|
|
const messages = defineMessages({
|
|
menuGeneralSettings: 'General',
|
|
menuUsers: 'Users',
|
|
menuPlexSettings: 'Plex',
|
|
menuJellyfinSettings: '{mediaServerName}',
|
|
menuServices: 'Services',
|
|
menuNotifications: 'Notifications',
|
|
menuLogs: 'Logs',
|
|
menuJobs: 'Jobs & Cache',
|
|
menuAbout: 'About',
|
|
});
|
|
|
|
const SettingsLayout: React.FC = ({ children }) => {
|
|
const intl = useIntl();
|
|
const settingsRoutes: SettingsRoute[] = [
|
|
{
|
|
text: intl.formatMessage(messages.menuGeneralSettings),
|
|
route: '/settings/main',
|
|
regex: /^\/settings(\/main)?$/,
|
|
},
|
|
{
|
|
text: intl.formatMessage(messages.menuUsers),
|
|
route: '/settings/users',
|
|
regex: /^\/settings\/users/,
|
|
},
|
|
{
|
|
text: intl.formatMessage(messages.menuPlexSettings),
|
|
route: '/settings/plex',
|
|
regex: /^\/settings\/plex/,
|
|
},
|
|
{
|
|
text: getAvalaibleMediaServerName(),
|
|
route: '/settings/jellyfin',
|
|
regex: /^\/settings\/jellyfin/,
|
|
},
|
|
{
|
|
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/,
|
|
},
|
|
];
|
|
|
|
return (
|
|
<>
|
|
<PageTitle title={intl.formatMessage(globalMessages.settings)} />
|
|
<div className="mt-6">
|
|
<SettingsTabs settingsRoutes={settingsRoutes} />
|
|
</div>
|
|
<div className="mt-10 text-white">{children}</div>
|
|
</>
|
|
);
|
|
function getAvalaibleMediaServerName() {
|
|
if (process.env.JELLYFIN_TYPE === 'emby') {
|
|
return intl.formatMessage(messages.menuJellyfinSettings, {
|
|
mediaServerName: 'Emby',
|
|
});
|
|
}
|
|
|
|
return intl.formatMessage(messages.menuJellyfinSettings, {
|
|
mediaServerName: 'Jellyfin',
|
|
});
|
|
}
|
|
};
|
|
|
|
export default SettingsLayout;
|