/**
 * Hides the telemetry sub-config (sampling + allowed events) when the
 * master toggle is off. The sub-block is one container so all dependent
 * fields stay in sync together.
 */
import { resolveHost } from '../core/app-dom.js';
import { syncControlState } from '../core/app-conditional-controls.js';

export const initTelemetrySettings = (root = document, options = {}) => {
  const host = resolveHost(root);
  const toggleSelector = String(options.toggleSelector || '[data-telemetry-enabled-toggle]').trim() || '[data-telemetry-enabled-toggle]';
  const dependentSelector = String(options.dependentSelector || '[data-telemetry-when-enabled]').trim() || '[data-telemetry-when-enabled]';

  const toggle = host.querySelector(toggleSelector);
  const dependent = host.querySelector(dependentSelector);

  if (!toggle || !dependent) {
    return { destroy: () => {} };
  }

  const sync = () => syncControlState(dependent, Boolean(toggle.checked));
  toggle.addEventListener('change', sync);
  sync();
  return {
    destroy: () => {
      toggle.removeEventListener('change', sync);
    },
  };
};
