From 6513755670892983db88a6633b8c1ea6019c03d1 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Fri, 15 Nov 2024 14:55:37 -0500 Subject: Re-namespace some stuff to Omni I was getting confused about what is a product and what is internal infrastructure; I think it is good to keep those things separate. So I moved a bunch of stuff to an Omni namespace, actually most stuff went there. Only things that are explicitly external products are still in the Biz namespace. --- Biz/App.hs | 71 -------------------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 Biz/App.hs (limited to 'Biz/App.hs') 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 -- cgit v1.2.3