diff --git a/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js b/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js
index de0a02212..72a8443de 100644
--- a/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js
+++ b/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js
@@ -23,12 +23,16 @@ const NavMenuContent = ({ onClick }) => {
const { createTorrentFromMagnet } = useTorrent();
const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen();
const [isIOSPWA, isAndroidPWA] = usePWA();
- const streamingServerWarningDismissed = React.useMemo(() => {
- return streamingServer.settings !== null && streamingServer.settings.type === 'Ready' || (
- !isNaN(profile.settings.streamingServerWarningDismissed.getTime()) &&
- profile.settings.streamingServerWarningDismissed.getTime() > Date.now()
- );
- }, [profile.settings, streamingServer.settings]);
+ const showStreamingServerWarning = React.useMemo(() => {
+ return streamingServer.state === null ||
+ streamingServer.state.type === 'Err' ||
+ (streamingServer.state.type === 'Ready' && streamingServer.state.content === 'notRunning') ?
+ (
+ isNaN(profile.settings.streamingServerWarningDismissed.getTime()) ||
+ profile.settings.streamingServerWarningDismissed.getTime() < Date.now()
+ )
+ : false;
+ }, [profile.settings, streamingServer.state]);
const logoutButtonOnClick = React.useCallback(() => {
core.transport.dispatch({
action: 'Ctx',
@@ -41,12 +45,12 @@ const NavMenuContent = ({ onClick }) => {
try {
const clipboardText = await navigator.clipboard.readText();
createTorrentFromMagnet(clipboardText);
- } catch(e) {
+ } catch (e) {
console.error(e);
}
}, []);
return (
-
+
{
null
}
-
-
- { t('TERMS_OF_SERVICE') }
+
+ {t('TERMS_OF_SERVICE')}
-
- { t('PRIVACY_POLICY') }
+
+ {t('PRIVACY_POLICY')}
{
profile.auth !== null ?
-
- { t('USER_PANEL') }
+
+ {t('USER_PANEL')}
:
null
diff --git a/src/routes/Board/Board.js b/src/routes/Board/Board.js
index cb2888a52..ab103c42d 100644
--- a/src/routes/Board/Board.js
+++ b/src/routes/Board/Board.js
@@ -23,10 +23,16 @@ const Board = () => {
const boardCatalogsOffset = continueWatchingPreview.items.length > 0 ? 1 : 0;
const scrollContainerRef = React.useRef();
const showStreamingServerWarning = React.useMemo(() => {
- return streamingServer.settings !== null && streamingServer.settings.type === 'Err' && (
- isNaN(profile.settings.streamingServerWarningDismissed.getTime()) ||
- profile.settings.streamingServerWarningDismissed.getTime() < Date.now());
- }, [profile.settings, streamingServer.settings]);
+ return streamingServer.state === null ||
+ streamingServer.state.type === 'Err' ||
+ (streamingServer.state.type === 'Ready' && streamingServer.state.content === 'notRunning') ?
+ (
+ isNaN(profile.settings.streamingServerWarningDismissed.getTime()) ||
+ profile.settings.streamingServerWarningDismissed.getTime() < Date.now()
+ )
+ : false;
+ }, [profile.settings, streamingServer.state]);
+
const onVisibleRangeChange = React.useCallback(() => {
const range = getVisibleChildrenRange(scrollContainerRef.current);
if (range === null) {
diff --git a/src/routes/Settings/Streaming/URLsManager/Item/Item.tsx b/src/routes/Settings/Streaming/URLsManager/Item/Item.tsx
index ec712a78b..c058a032c 100644
--- a/src/routes/Settings/Streaming/URLsManager/Item/Item.tsx
+++ b/src/routes/Settings/Streaming/URLsManager/Item/Item.tsx
@@ -23,6 +23,8 @@ const Item = ({ url }: Props) => {
const selected = useMemo(() => profile.settings.streamingServerUrl === url, [url, profile.settings]);
const defaultUrl = useMemo(() => url === DEFAULT_STREAMING_SERVER_URL, [url]);
+ const serverReady = useMemo(() => streamingServer.state?.type === 'Ready' && streamingServer.state.content === 'running', [streamingServer]);
+ const serverError = useMemo(() => streamingServer.state?.type === 'Err' || (streamingServer.state?.type === 'Ready' && streamingServer.state.content === 'notRunning'), [streamingServer]);
const handleDelete = useCallback(() => {
deleteServerUrl(url);
@@ -43,19 +45,19 @@ const Item = ({ url }: Props) => {
{
selected ?
-
+
{
- streamingServer.settings === null ?
+ streamingServer.state === null ?
'NotLoaded'
:
- streamingServer.settings.type === 'Ready' ?
+ serverReady ?
t('SETTINGS_SERVER_STATUS_ONLINE')
:
- streamingServer.settings.type === 'Err' ?
+ serverError ?
t('SETTINGS_SERVER_STATUS_ERROR')
:
- streamingServer.settings.type
+ streamingServer.state.type
}
diff --git a/src/types/models/StremingServer.d.ts b/src/types/models/StremingServer.d.ts
index 6e6f96f39..6485d36b2 100644
--- a/src/types/models/StremingServer.d.ts
+++ b/src/types/models/StremingServer.d.ts
@@ -127,4 +127,5 @@ type StreamingServer = {
playbackDevices: Loadable | null,
networkInfo: Loadable | null,
deviceInfo: Loadable | null,
+ state: Loadable | null
};