packages feed

ribosome-0.3.0.0: lib/Ribosome/Menu/Data/Menu.hs

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE TemplateHaskell #-}

module Ribosome.Menu.Data.Menu where

import Ribosome.Menu.Data.MenuItem (MenuItem)

newtype MenuFilter =
  MenuFilter Text
  deriving (Eq, Show)

instance Default MenuFilter where
  def = MenuFilter ""

data Menu =
  Menu {
    _items :: [MenuItem],
    _filtered :: [MenuItem],
    _stack :: [(Text, [MenuItem])],
    _selected :: Int,
    _currentFilter :: MenuFilter
  }
  deriving (Eq, Show, Generic, Default)

deepLenses ''Menu