{-# LANGUAGE TemplateHaskell #-}
module Mensam.Client.UI.Brick.State where
import Mensam.API.Route.Api.User
import Mensam.Client.UI.Desks
import Mensam.Client.UI.Login
import Mensam.Client.UI.Menu
import Mensam.Client.UI.Register
import Mensam.Client.UI.Spaces
import Data.Kind
import Data.Text qualified as T
import Data.Time qualified as T
import Lens.Micro.Platform
type ClientScreenState :: Type
data ClientScreenState
= ClientScreenStateLogin {ClientScreenState -> ScreenLoginState
_clientScreenStateLogin :: ScreenLoginState}
| ClientScreenStateRegister {ClientScreenState -> ScreenRegisterState
_clientScreenStateRegister :: ScreenRegisterState}
| ClientScreenStateSpaces {ClientScreenState -> ScreenSpacesState
_clientScreenStateSpaces :: ScreenSpacesState}
| ClientScreenStateDesks {ClientScreenState -> ScreenDesksState
_clientScreenStateDesks :: ScreenDesksState}
| { :: ScreenMenuState}
type ClientState :: Type
data ClientState = MkClientState
{ ClientState -> ClientScreenState
_clientStateScreenState :: ClientScreenState
, :: Maybe T.Text
, ClientState -> Maybe Jwt
_clientStateJwt :: Maybe Jwt
, ClientState -> TimeZone
_clientStateTimezone :: T.TimeZone
}