import React, { FC, useEffect, useState } from 'react'; import { appHost } from 'components/apphost'; import Page from 'components/Page'; import { AppFeature } from 'constants/appFeature'; import LinkButton from 'elements/emby-button/LinkButton'; import globalize from 'lib/globalize'; import { ConnectionState } from 'lib/jellyfin-apiclient'; interface ConnectionErrorPageProps { state: ConnectionState } const ConnectionErrorPage: FC = ({ state }) => { const [ title, setTitle ] = useState(); const [ htmlMessage, setHtmlMessage ] = useState(); const [ message, setMessage ] = useState(); useEffect(() => { switch (state) { case ConnectionState.ServerUpdateNeeded: setTitle(globalize.translate('HeaderUpdateRequired')); setHtmlMessage(globalize.translate( 'ServerUpdateNeeded', 'jellyfin.org/downloads/server' )); setMessage(undefined); return; case ConnectionState.Unavailable: setTitle(globalize.translate('HeaderServerUnavailable')); setHtmlMessage(undefined); setMessage(globalize.translate('MessageUnableToConnectToServer')); } }, [ state ]); if (!title) return; return (

{title}

{htmlMessage && (

)} {message && (

{message}

)} {appHost.supports(AppFeature.MultiServer) && ( {globalize.translate('ButtonChangeServer')} )}
); }; export default ConnectionErrorPage;