func()

in tui/components.go [242:333]


func (s settingsTable) render() string {
	doc := strings.Builder{}
	wSetting := 0
	wValue := 0

	s.stack.Settings.Sort()

	rows := []table.Row{}

	if s := s.stack.Settings.Find("stack_name"); s != nil && len(s.Value) > 0 {
		rows = append(rows, table.Row{
			titleStyle.Render("Stack Name"),
			strong.Render(s.Value),
		})
	}

	if s := s.stack.Settings.Find("project_name"); s != nil && len(s.Value) > 0 {
		rows = append(rows, table.Row{
			titleStyle.Render("Project Name"),
			strong.Render(s.Value),
		})
	}

	if s := s.stack.Settings.Find("project_id"); s != nil && len(s.Value) > 0 {
		rows = append(rows, table.Row{
			titleStyle.Render("Project ID"),
			strong.Render(s.Value),
		})
	}

	if s := s.stack.Settings.Find("project_number"); s != nil && len(s.Value) > 0 {
		rows = append(rows, table.Row{
			titleStyle.Render("Project Number"),
			strong.Render(s.Value),
		})
	}

	for _, setting := range s.stack.Settings {

		rawValue := setting.TFvarsValue()
		rawValue = strings.Trim(rawValue, "\"")
		value := strong.Render(strings.TrimSpace(rawValue))

		if len(rawValue) > 45 {
			value = strong.Render(rawValue[:45] + "...")
		}

		if len(setting.Name) > wSetting {
			wSetting = len(setting.Name)
		}

		if len(value) > wValue {
			wValue = len(value)
		}

		if setting.Name == "project_id" ||
			setting.Name == "project_number" ||
			setting.Name == "project_name" ||
			setting.Name == "stack_name" {
			continue
		}
		if len(value) < 1 {
			continue
		}

		nameRaw := strings.TrimSpace(setting.Name)
		nameRaw = strings.ReplaceAll(nameRaw, "_", " ")
		nameRaw = strings.ReplaceAll(nameRaw, "-", " ")
		formatted := cases.Title(language.English).String(nameRaw)
		rows = append(rows, table.Row{titleStyle.Render(formatted), value})

	}

	columns := []table.Column{
		{Title: "Setting", Width: 35},
		{Title: "Value", Width: 55},
	}

	t := table.New(
		table.WithColumns(columns),
		table.WithRows(rows),
		table.WithFocused(false),
		table.WithHeight(len(s.stack.Settings)),
	)

	t.SetStyles(tableStyle)
	doc.WriteString("\n")
	doc.WriteString(t.View())
	doc.WriteString("\n")

	return doc.String()
}