From 01f1c4f6d90bde7dfbfc4eba124acbc18df38b20 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Sat, 11 Oct 2025 21:21:04 +0100 Subject: [PATCH] feat(frontend): show proxy menu in simple mode but remove proxy controls --- packages/frontend/src/app/main-sidebar.tsx | 16 +- .../frontend/src/components/menu/proxy.tsx | 140 +++++++++--------- packages/frontend/src/context/menu.tsx | 2 +- 3 files changed, 80 insertions(+), 78 deletions(-) diff --git a/packages/frontend/src/app/main-sidebar.tsx b/packages/frontend/src/app/main-sidebar.tsx index 22e0bd6d..fc2724dc 100644 --- a/packages/frontend/src/app/main-sidebar.tsx +++ b/packages/frontend/src/app/main-sidebar.tsx @@ -126,16 +126,12 @@ export function MainSidebar() { isCurrent: selectedMenu === 'formatter', id: 'formatter', }, - ...(mode === 'pro' - ? [ - { - name: 'Proxy', - iconType: BiServer, - isCurrent: selectedMenu === 'proxy', - id: 'proxy', - }, - ] - : []), + { + name: 'Proxy', + iconType: BiServer, + isCurrent: selectedMenu === 'proxy', + id: 'proxy', + }, { name: 'Miscellaneous', iconType: BiCog, diff --git a/packages/frontend/src/components/menu/proxy.tsx b/packages/frontend/src/components/menu/proxy.tsx index 458b433b..b739d684 100644 --- a/packages/frontend/src/components/menu/proxy.tsx +++ b/packages/frontend/src/components/menu/proxy.tsx @@ -14,6 +14,7 @@ import { Button } from '../ui/button'; import MarkdownLite from '../shared/markdown-lite'; import { PageControls } from '../shared/page-controls'; import { PasswordInput } from '../ui/password-input'; +import { useMode } from '@/context/mode'; type ProxyServiceId = keyof typeof constants.PROXY_SERVICE_DETAILS; type ProxyConfig = { @@ -39,6 +40,7 @@ export function ProxyMenu() { function Content() { const { status } = useStatus(); const { userData, setUserData } = useUserData(); + const { mode } = useMode(); const details = constants.PROXY_SERVICE_DETAILS; // Effect to initialize values from userData/defaults/forced @@ -214,76 +216,80 @@ function Content() { )} -
- { - setUserData((prev) => ({ - ...prev, - proxy: { ...prev.proxy, publicIp: v || undefined }, - })); - }} - placeholder="Enter public IP" - disabled={isPublicIpForced || !userData.proxy?.enabled} - /> -

- Configure this only when running {selectedProxyDetails?.name}{' '} - locally with a proxy service. Leave empty if{' '} - {selectedProxyDetails?.name} is configured locally without a proxy - server or if it's hosted on a remote server. -

-
+ {mode === 'pro' && ( +
+ { + setUserData((prev) => ({ + ...prev, + proxy: { ...prev.proxy, publicIp: v || undefined }, + })); + }} + placeholder="Enter public IP" + disabled={isPublicIpForced || !userData.proxy?.enabled} + /> +

+ Configure this only when running {selectedProxyDetails?.name}{' '} + locally with a proxy service. Leave empty if{' '} + {selectedProxyDetails?.name} is configured locally without a + proxy server or if it's hosted on a remote server. +

+
+ )} - -
- { - setUserData((prev) => ({ - ...prev, - proxy: { ...prev.proxy, proxiedServices: v }, - })); - }} - options={serviceOptions} - placeholder="Select services to proxy" - multiple={true} - disabled={isServicesForced || !userData.proxy?.enabled} - emptyMessage="No services available" - /> -

- Only streams (that are detected to be) from these services will be - proxied. Select None to enable proxying of streams that are not - detected to be from a service. -

-
+ {mode === 'pro' && ( + +
+ { + setUserData((prev) => ({ + ...prev, + proxy: { ...prev.proxy, proxiedServices: v }, + })); + }} + options={serviceOptions} + placeholder="Select services to proxy" + multiple={true} + disabled={isServicesForced || !userData.proxy?.enabled} + emptyMessage="No services available" + /> +

+ Only streams (that are detected to be) from these services will + be proxied. Select None to enable proxying of streams that are + not detected to be from a service. +

+
-
- { - setUserData((prev) => ({ - ...prev, - proxy: { ...prev.proxy, proxiedAddons: v }, - })); - }} - options={addonOptions} - placeholder="Select addons to proxy" - multiple={true} - disabled={isProxiedAddonsDisabled || !userData.proxy?.enabled} - emptyMessage="No addons available" - /> -

- Only streams from these addons will be proxied -

-
-
+
+ { + setUserData((prev) => ({ + ...prev, + proxy: { ...prev.proxy, proxiedAddons: v }, + })); + }} + options={addonOptions} + placeholder="Select addons to proxy" + multiple={true} + disabled={isProxiedAddonsDisabled || !userData.proxy?.enabled} + emptyMessage="No addons available" + /> +

+ Only streams from these addons will be proxied +

+
+
+ )} ); diff --git a/packages/frontend/src/context/menu.tsx b/packages/frontend/src/context/menu.tsx index 5f617671..32a606c9 100644 --- a/packages/frontend/src/context/menu.tsx +++ b/packages/frontend/src/context/menu.tsx @@ -15,7 +15,7 @@ const VALID_MENUS = [ 'save-install', ]; -const PRO_ONLY_MENUS = ['proxy', 'sorting']; +const PRO_ONLY_MENUS = ['sorting']; export type MenuId = (typeof VALID_MENUS)[number];