diff --git a/ers5952-manager.jsx b/ers5952-manager.jsx index 977f648..6545996 100644 --- a/ers5952-manager.jsx +++ b/ers5952-manager.jsx @@ -2208,7 +2208,7 @@ function WireGuardTab({ session, onNeedAuth, backendOk, vlans = [] }) { }); const [opnPeerName, setOpnPeerName] = useState(''); const [opnVlans, setOpnVlans] = useState([]); // checked VLAN IDs - const [opnDnsProfile, setOpnDnsProfile] = useState('house'); // ControlD profile for VPN clients + const [opnDnsProfile, setOpnDnsProfile] = useState(''); // ControlD profile for VPN clients — auto-set from VLAN const [opnAdding, setOpnAdding] = useState(false); const [opnQr, setOpnQr] = useState(null); // { config, name } @@ -2288,7 +2288,16 @@ function WireGuardTab({ session, onNeedAuth, backendOk, vlans = [] }) { }; const opnToggleVlan = (vid) => { - setOpnVlans(prev => prev.includes(vid) ? prev.filter(v=>v!==vid) : [...prev, vid]); + const next = opnVlans.includes(vid) ? opnVlans.filter(v=>v!==vid) : [...opnVlans, vid]; + setOpnVlans(next); + // Auto-set DNS profile from the VLAN (when single VLAN selected) + if (next.length === 1) { + const v = vlans.find(x => x.id === next[0]); + if (v) setOpnDnsProfile(v.name.toLowerCase()); + } else if (next.length === 0) { + setOpnDnsProfile(''); + } + // When multiple VLANs selected, keep whatever profile is set }; const opnAddPeer = async () => { @@ -2795,15 +2804,19 @@ function OPNsenseWGSection({