package tui

import (
	"fmt"

	"github.com/charmbracelet/lipgloss"
)

func (m Model) viewSettingsTab() string {
	sections := []string{"Alerts", "Nodes"}
	if m.isAdmin {
		sections = append(sections, "Users")
	}

	var tabs []string
	for i, name := range sections {
		var rendered string
		if i == m.settingsSection {
			rendered = m.st.activeTab.Render(name)
		} else {
			rendered = m.st.inactiveTab.Render(name)
		}
		tabs = append(tabs, m.zones.Mark(fmt.Sprintf("section-%d", i), rendered))
	}
	header := lipgloss.JoinHorizontal(lipgloss.Top, tabs...)

	var content string
	switch m.settingsSection {
	case sectionAlerts:
		content = m.viewAlertsTab()
	case sectionNodes:
		content = m.viewNodesTab()
	case sectionUsers:
		if m.isAdmin {
			content = m.viewUsersTab()
		}
	}

	return header + "\n" + content
}

func (m *Model) switchSettingsSection(idx int) {
	max := 1
	if m.isAdmin {
		max = 2
	}
	if idx > max {
		idx = 0
	}
	if idx < 0 {
		idx = max
	}
	m.settingsSection = idx
	m.cursor = 0
	m.tableOffset = 0
}
