from simple_term_menu import TerminalMenu

class SimpleTUI:
    """TUI parts using library simple_term_menu"""
    def __init__(self):
        pass

    def choose_menu(self, menu_title, choices):
        """ Dynamic function to display content of a list and returnes which was selected."""
        menu_options = choices
        menu = TerminalMenu(
            menu_entries = menu_options,
            title = menu_title,
            menu_cursor = "> ",
            menu_cursor_style = ("fg_gray", "bold"),
            menu_highlight_style = ("bg_gray", "fg_black"),
            cycle_cursor = True,
            clear_screen = False
        )
        menu.show()
        return menu.chosen_menu_entry

    def multi_select_menu(self, menu_title, choices):
        """ Dynamic function to display content of a list and returnes which was selected."""
        menu_options = choices
        menu = TerminalMenu(
            menu_entries = menu_options,
            title = menu_title,
            multi_select=True,
            show_multi_select_hint=True,
            menu_cursor_style = ("fg_gray", "bold"),
            menu_highlight_style = ("bg_gray", "fg_black"),
            cycle_cursor = True,
            clear_screen = False
        )
        menu.show()
        choisen_values = menu.chosen_menu_entries

        if choisen_values == None:
            print("Exiting...")
            exit()
        else:
            return menu.chosen_menu_entries

    def yes_no_menu(self, message): # oh
            menu_options = ["[y] yes", "[n] no"]
            menu = TerminalMenu(
                menu_entries = menu_options,
                title = f"{message}",
                menu_cursor = "> ",
                menu_cursor_style = ("fg_red", "bold"),
                menu_highlight_style = ("bg_gray", "fg_black"),
                cycle_cursor = True,
                clear_screen = False
            )
            menu_entry_index = menu.show()
            if menu_entry_index == 0:
                return True
            elif menu_entry_index == 1:
                return False