package ui

import (
	"fmt"
	"io"
	"strings"

	table "github.com/lmika/go-bubble-table"
	"github.com/lmika/audax/internal/sqs-browse/models"
)

type messageTableRow models.Message

func (mtr messageTableRow) Render(w io.Writer, model table.Model, index int) {
	firstLine := strings.SplitN(string(mtr.Data), "\n", 2)[0]

	sb := strings.Builder{}
	sb.WriteString(fmt.Sprintf("%d", mtr.ID))
	sb.WriteString("\t")
	sb.WriteString(firstLine)

	if index == model.Cursor() {
		fmt.Fprintln(w, model.Styles.SelectedRow.Render(sb.String()))
	} else {
		fmt.Fprintln(w, sb.String())
	}
}