{-# LANGUAGE NamedFieldPuns #-}

module FortyTwo.Renderers.Select (renderOptions, renderOption) where

import FortyTwo.Types (Option(..), Options)
import System.Console.ANSI
import FortyTwo.Constants

-- | Render all the options collection
renderOptions :: Options -> IO ()
renderOptions = mapM_ renderOption

-- | Render a single option items
renderOption :: Option -> IO()
renderOption Option { isSelected, isFocused, value } =
  if isFocused then do
    setSGR [SetColor Foreground Dull Cyan]
    putStrLn $ unwords [[focusIcon], value]
    setSGR [Reset]
  else
    putStrLn $ "  " ++ value