module Matterhorn.Constants
  ( pageAmount
  , userTypingExpiryInterval
  , numScrollbackPosts
  , previewMaxHeight
  , normalChannelSigil
  , normalChannelSigilChar
  , userSigil
  , userSigilChar
  , editMarking
  )
where

import Prelude ()
import Matterhorn.Prelude

import qualified Data.Text as T


-- | The number of rows to consider a "page" when scrolling
pageAmount :: Int
pageAmount :: Int
pageAmount = Int
15

-- | The expiry interval in seconds for user typing notifications.
userTypingExpiryInterval :: NominalDiffTime
userTypingExpiryInterval :: NominalDiffTime
userTypingExpiryInterval = NominalDiffTime
5

numScrollbackPosts :: Int
numScrollbackPosts :: Int
numScrollbackPosts = Int
100

-- | The maximum height of the message preview, in lines.
previewMaxHeight :: Int
previewMaxHeight :: Int
previewMaxHeight = Int
5

-- Sigils
normalChannelSigil :: Text
normalChannelSigil :: Text
normalChannelSigil = Char -> Text
T.singleton Char
normalChannelSigilChar

normalChannelSigilChar :: Char
normalChannelSigilChar :: Char
normalChannelSigilChar = Char
'~'

userSigil :: Text
userSigil :: Text
userSigil = Char -> Text
T.singleton Char
userSigilChar

userSigilChar :: Char
userSigilChar :: Char
userSigilChar = Char
'@'

editMarking :: Text
editMarking :: Text
editMarking = Text
"(edited)"