package metricstui

import (
	"errors"
	"fmt"
	"io"

	tea "github.com/charmbracelet/bubbletea"
)

func RunRangeTUI(stdout io.Writer, rawResponse []byte) error {
	if stdout == nil {
		return errors.New("metrics range tui requires stdout")
	}

	response, err := DecodeQueryRangeResponse(rawResponse)
	if err != nil {
		return err
	}

	program := tea.NewProgram(
		newRangeModel(response),
		tea.WithAltScreen(),
		tea.WithOutput(stdout),
	)

	if _, err := program.Run(); err != nil {
		return fmt.Errorf("run metrics range tui: %w", err)
	}
	return nil
}
