diff --git a/src/routes/Settings/Settings.js b/src/routes/Settings/Settings.js index 071f14d0e..3518ef471 100644 --- a/src/routes/Settings/Settings.js +++ b/src/routes/Settings/Settings.js @@ -47,6 +47,7 @@ const Settings = () => { } = useProfileSettingsInputs(profile); const { streamingServerRemoteUrlInput, + proxyStreamsCheckbox, remoteEndpointSelect, cacheSizeSelect, torrentProfileSelect, @@ -627,6 +628,21 @@ const Settings = () => { : null } + { + proxyStreamsCheckbox !== null ? +
+
+
{ t('SETTINGS_PROXY_STREAMS') }
+
+ +
+ : + null + }
{ t('SETTINGS_NAV_SHORTCUTS') }
diff --git a/src/routes/Settings/useStreamingServerSettingsInputs.js b/src/routes/Settings/useStreamingServerSettingsInputs.js index 32fb971a5..9ca04545a 100644 --- a/src/routes/Settings/useStreamingServerSettingsInputs.js +++ b/src/routes/Settings/useStreamingServerSettingsInputs.js @@ -61,6 +61,28 @@ const useStreamingServerSettingsInputs = (streamingServer) => { value: streamingServer.remoteUrl, }), [streamingServer.remoteUrl]); + const proxyStreamsCheckbox = React.useMemo(() => { + if (streamingServer.settings?.type !== 'Ready') { + return null; + } + + return { + checked: streamingServer.settings.content.proxyStreamsEnabled, + onClick: () => { + core.transport.dispatch({ + action: 'StreamingServer', + args: { + action: 'UpdateSettings', + args: { + ...streamingServer.settings.content, + proxyStreamsEnabled: !streamingServer.settings.content.proxyStreamsEnabled + } + } + }); + } + } + }, [streamingServer.settings]); + const remoteEndpointSelect = React.useMemo(() => { if (streamingServer.settings?.type !== 'Ready' || streamingServer.networkInfo?.type !== 'Ready') { return null; @@ -198,7 +220,7 @@ const useStreamingServerSettingsInputs = (streamingServer) => { } }; }, [streamingServer.settings, streamingServer.deviceInfo]); - return { streamingServerRemoteUrlInput, remoteEndpointSelect, cacheSizeSelect, torrentProfileSelect, transcodingProfileSelect }; + return { streamingServerRemoteUrlInput, proxyStreamsCheckbox, remoteEndpointSelect, cacheSizeSelect, torrentProfileSelect, transcodingProfileSelect }; }; module.exports = useStreamingServerSettingsInputs;