packages feed

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

module Ribosome.Menu.Data.Menu where

import Data.DeepLenses (DeepLenses(..))

import Ribosome.Menu.Data.FilteredMenuItem (FilteredMenuItem)
import Ribosome.Menu.Data.MenuItem (MenuItem)

newtype MenuFilter =
  MenuFilter Text
  deriving (Eq, Show)

instance Default MenuFilter where
  def = MenuFilter ""

data Menu a =
  Menu {
    _items :: [MenuItem a],
    _filtered :: [FilteredMenuItem a],
    _selected :: Int,
    _marked :: [Int],
    _currentFilter :: MenuFilter,
    _maxItems :: Maybe Int
  }
  deriving (Eq, Show, Generic, Default)

makeClassy ''Menu

instance DeepLenses (Menu a) (Menu a) where
  deepLens = id