<?php
// pages/components/newsletter_collections_config_toggle.php
// Toggles Manual/Archive collections UI options in the per-user newsletter UI state
// and re-renders the collections list (outerHTML swap).

use Components\ConfigStore;
use Components\Newsletter\PageConfig;

$method = (string) \mh_server('REQUEST_METHOD', 'GET');
if ($method !== 'POST') {
    return;
}

$pageConfig = PageConfig::fromRequest();
$action  = (string) mh_get('toggle', '', 'string');
$section = (string) mh_get('section', '', 'string');

if ($action === 'toggle_description') {
    if (!in_array($section, ['manual', 'archive'], true)) {
        return;
    }

    $nlUiState = ConfigStore::getNewsletterUiState($pageConfig->mode);
    $map = isset($nlUiState['collections_show_description']) && is_array($nlUiState['collections_show_description'])
        ? $nlUiState['collections_show_description']
        : [];

    $current = !empty($map[$section]);
    $map[$section] = !$current;
    ConfigStore::setNewsletterUiState(['collections_show_description' => $map], $pageConfig->mode);
}

// Re-render the collections list so the caller can swap it in (outerHTML)
require __DIR__ . '/newsletter_collection_list.php';
