-
-
-
-
-
- {syncDot.tooltip}
-
-
- {proxy.name}
+
+
+ {!isCloud && (
+
+
+
+
+
+ {syncDot.tooltip}
+
+
+ )}
+ {proxy.name}
+
+ {isCloud && cloudProxyUsage && (
+
+ {cloudProxyUsage.used_mb} /{" "}
+ {cloudProxyUsage.limit_mb} MB used
+
+ )}
@@ -310,36 +353,40 @@ export function ProxyManagementDialog({
-
-
-
-
- handleToggleSync(proxy)
- }
- disabled={
- isTogglingSync[proxy.id] ||
- proxyInUse[proxy.id]
- }
- />
-
-
-
- {proxyInUse[proxy.id] ? (
-
- Sync cannot be disabled while this proxy
- is used by synced profiles
-
- ) : (
-
- {proxy.sync_enabled
- ? "Disable sync"
- : "Enable sync"}
-
- )}
-
-
+ {isCloud ? (
+ Cloud
+ ) : (
+
+
+
+
+ handleToggleSync(proxy)
+ }
+ disabled={
+ isTogglingSync[proxy.id] ||
+ proxyInUse[proxy.id]
+ }
+ />
+
+
+
+ {proxyInUse[proxy.id] ? (
+
+ Sync cannot be disabled while this proxy
+ is used by synced profiles
+
+ ) : (
+
+ {proxy.sync_enabled
+ ? "Disable sync"
+ : "Enable sync"}
+
+ )}
+
+
+ )}
@@ -362,47 +409,55 @@ export function ProxyManagementDialog({
}));
}}
/>
-
-
-
-
-
- Edit proxy
-
-
-
-
-
-
-
-
-
- {(proxyUsage[proxy.id] ?? 0) > 0 ? (
-
- Cannot delete: in use by{" "}
- {proxyUsage[proxy.id]} profile
- {proxyUsage[proxy.id] > 1 ? "s" : ""}
-
- ) : (
- Delete proxy
- )}
-
-
+ {!isCloud && (
+ <>
+
+
+
+
+
+ Edit proxy
+
+
+
+
+
+
+
+
+
+ {(proxyUsage[proxy.id] ?? 0) > 0 ? (
+
+ Cannot delete: in use by{" "}
+ {proxyUsage[proxy.id]} profile
+ {proxyUsage[proxy.id] > 1
+ ? "s"
+ : ""}
+
+ ) : (
+ Delete proxy
+ )}
+
+
+ >
+ )}
diff --git a/src/components/sync-config-dialog.tsx b/src/components/sync-config-dialog.tsx
index 32fc527..b8d973e 100644
--- a/src/components/sync-config-dialog.tsx
+++ b/src/components/sync-config-dialog.tsx
@@ -256,6 +256,17 @@ export function SyncConfigDialog({ isOpen, onClose }: SyncConfigDialogProps) {
})}
+ {user.proxyBandwidthLimitMb > 0 && (
+
diff --git a/src/types.ts b/src/types.ts
index 52c2050..40a4e36 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -67,12 +67,15 @@ export interface ProxyCheckResult {
is_valid: boolean;
}
+export const CLOUD_PROXY_ID = "cloud-included-proxy";
+
export interface StoredProxy {
id: string;
name: string;
proxy_settings: ProxySettings;
sync_enabled?: boolean;
last_sync?: number;
+ is_cloud_managed?: boolean;
}
export interface ProfileGroup {