mushu-0.1.1: app/UI/Widgets/Notification.hs
{-# LANGUAGE TemplateHaskell #-}
module UI.Widgets.Notification
( NotificationState
, mkState
, mkWidget
, setNotification
) where
import ClassyPrelude
import TH (makeSuffixLenses)
import Lens.Micro.Platform ((^.), (&), (.~))
import Brick.Types (Widget)
import Brick.Widgets.Core (str)
data NotificationState = NotificationState
{ _notification :: Maybe Text
} deriving Show
makeSuffixLenses ''NotificationState
mkState :: NotificationState
mkState = NotificationState Nothing
mkWidget :: NotificationState -> Widget n
mkWidget state = str . unpack $ fromMaybe "" (state^.notificationL)
setNotification :: Text -> NotificationState -> NotificationState
setNotification txt state = state & notificationL .~ (Just txt)