"use client"; export type SourceId = "1proxy" | "proxifly" | "iplocate"; export const ALL_SOURCE_IDS: SourceId[] = ["1proxy", "proxifly", "iplocate"]; export const FREE_POOL_DISABLED_SOURCES_KEY = "freePool.disabledSources"; export function loadDisabledSources(): Set { try { const raw = globalThis.localStorage?.getItem(FREE_POOL_DISABLED_SOURCES_KEY); if (!raw) return new Set(); const arr = JSON.parse(raw) as unknown[]; return new Set(arr.filter((id): id is SourceId => ALL_SOURCE_IDS.includes(id as SourceId))); } catch { return new Set(); } } export function saveDisabledSources(disabled: Set): void { try { globalThis.localStorage?.setItem(FREE_POOL_DISABLED_SOURCES_KEY, JSON.stringify([...disabled])); } catch {} } interface SourceToggleBarProps { disabledSources: Set; onToggle: (source: SourceId) => void; } const SOURCES: Array<{ id: SourceId; label: string }> = [ { id: "1proxy", label: "1proxy" }, { id: "proxifly", label: "Proxifly" }, { id: "iplocate", label: "IPLocate" }, ]; export default function SourceToggleBar({ disabledSources, onToggle }: SourceToggleBarProps) { return (
{SOURCES.map((s) => { const enabled = !disabledSources.has(s.id); return ( ); })}
); }