summaryrefslogtreecommitdiff
path: root/Biz/App.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/App.hs')
-rw-r--r--Biz/App.hs71
1 files changed, 0 insertions, 71 deletions
diff --git a/Biz/App.hs b/Biz/App.hs
deleted file mode 100644
index 317a163..0000000
--- a/Biz/App.hs
+++ /dev/null
@@ -1,71 +0,0 @@
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-
--- | General utils for apps
-module Biz.App
- ( Area (..),
- CSS (..),
- HasCss (..),
- Manifest (..),
- Html (..),
- )
-where
-
-import Alpha
-import qualified Clay
-import Data.Aeson (ToJSON)
-import qualified Data.Text.Lazy as Lazy
-import qualified Data.Text.Lazy.Encoding as Lazy
-import Network.HTTP.Media
- ( (//),
- (/:),
- )
-import Servant.API (Accept (..), MimeRender (..))
-import qualified System.Envy as Envy
-
-data Area = Test | Live
- deriving (Generic, Show)
-
-instance Envy.Var Area where
- toVar = show
- fromVar "Test" = Just Test
- fromVar "Live" = Just Live
- fromVar _ = Just Test
-
-newtype CSS = CSS
- { unCSS :: Text
- }
-
-instance Accept CSS where
- contentType _ = "text" // "css" /: ("charset", "utf-8")
-
-instance MimeRender CSS Text where
- mimeRender _ = Lazy.encodeUtf8 <. Lazy.fromStrict
-
--- | The manifest describes your app for web app thumbnails, iPhone tiles, etc.
-data Manifest = Manifest
- { name :: Text,
- short_name :: Text,
- start_url :: Text,
- display :: Text,
- theme_color :: Text,
- description :: Text
- }
- deriving (Show, Eq, Generic)
-
-instance ToJSON Manifest
-
--- | A wrapper for an HTML page. You need to provide an orphan
--- 'Lucid.Base.ToHtml' instance in the web module of your app.
---
--- Ideally this would be captured in a Biz.App type, with overrides for head
--- elements, and we would wouldn't have to make the same basic orphan instance
--- for each app.
-newtype Html a = Html a
- deriving (Show, Eq)
-
--- | Class for attaching some CSS to a page specifically.
-class HasCss a where
- cssFor :: a -> Clay.Css