From 4480423731821fe072b0a345db133725c2e9f3b5 Mon Sep 17 00:00:00 2001 From: unclekingpin Date: Sun, 23 Jun 2024 02:33:45 -0700 Subject: [PATCH] add proxy streams setting --- src/routes/Settings/Settings.js | 16 +++++++++++++ .../useStreamingServerSettingsInputs.js | 24 ++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) 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;