This commit is contained in:
Dmitry Zuikov 2024-03-26 05:53:40 +03:00
parent 89f81f6c0e
commit fac722ad61
4 changed files with 67 additions and 6 deletions

9
hbs2-peer/app/Browser.hs Normal file
View File

@ -0,0 +1,9 @@
module Browser
( module Browser.Root
, module Lucid
) where
import Browser.Root
import Lucid (Html,renderTextT)

View File

@ -0,0 +1,48 @@
module Browser.Root
( module Lucid
, browserRootPage
) where
import HBS2.Prelude.Plated
import Lucid (Html,HtmlT)
import Lucid.Html5
import Text.InterpolatedString.Perl6 (qc,qq,q)
import Control.Monad
import Control.Monad.Identity
browserRootPage :: Monad m => HtmlT m ()
browserRootPage = do
head_ $ do
meta_ [charset_ "utf-8"]
meta_ [name_ "viewport", content_ "width=device-width, initial-scale=1"]
title_ "hbs2-peer browser"
link_ [rel_ "stylesheet", href_ "/css/pico.min.css"]
link_ [rel_ "stylesheet", href_ "/css/custom.css"]
style_ [type_ "text/css"] [q|
.flex-container { display: flex; justify-content: space-around; }
.flex-item { margin: 10px; padding: 20px; border: 1px solid #ccc; }
.resource-box { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); margin: 20px; padding: 20px; border-radius: 8px; }
h2 { font-size: 1.00rem; };
.container header h2 { font-color: red; }
|]
body_ $ do
div_ [class_ "container"] $ do
header_ $ do
h1_ "hbs2-peer browser"
main_ $ do
replicateM_ 6 do
div_ [class_ "resource-box"] $ do
h2_ "Metadata channel"
div_ do
a_ [href_ "/wtf"] "5GnroAC8FXNRL8rcgJj6RTu9mt1AbuNd5MZVnDBcCKzb"
p_ "some-shitty-wtf"
footer_ "Это подвал страницы."

View File

@ -22,6 +22,7 @@ import HBS2.Misc.PrettyStuff
import PeerTypes import PeerTypes
import PeerConfig import PeerConfig
import RefLog ( doRefLogBroadCast ) import RefLog ( doRefLogBroadCast )
import Browser
import Data.Config.Suckless import Data.Config.Suckless
@ -29,7 +30,7 @@ import Data.ByteString.Lazy qualified as LBS
import Network.HTTP.Types.Status import Network.HTTP.Types.Status
import Network.Wai.Middleware.RequestLogger import Network.Wai.Middleware.RequestLogger
import Network.Wai.Middleware.StaticEmbedded import Network.Wai.Middleware.StaticEmbedded
import Text.InterpolatedString.Perl6 (qc) import Text.InterpolatedString.Perl6 (qc,qq,q)
import Web.Scotty import Web.Scotty
import Data.Text.Lazy.IO qualified as TIO import Data.Text.Lazy.IO qualified as TIO
@ -51,6 +52,9 @@ import System.FilePath
import Control.Monad.Except import Control.Monad.Except
import Control.Monad.Trans.Cont import Control.Monad.Trans.Cont
-- import Lucid (renderTextT)
-- import Lucid.Html5 hiding (for_)
import UnliftIO (async) import UnliftIO (async)
{- HLINT ignore "Functor law" -} {- HLINT ignore "Functor law" -}
@ -222,11 +226,8 @@ httpWorker (PeerConfig syn) pmeta e = do
when bro do when bro do
get "/browser" $ flip runContT pure do get "/browser" do
template <- orElse (status status500) (HM.lookup "browser.html" templates) renderTextT browserRootPage >>= html
lift do
html $ renderMustache template "JOPAKITA"
status status200
put "/" do put "/" do
-- FIXME: optional-header-based-authorization -- FIXME: optional-header-based-authorization

View File

@ -72,6 +72,7 @@ common common-deps
, wai , wai
, wai-extra , wai-extra
, wai-middleware-static-embedded , wai-middleware-static-embedded
, lucid
, unliftio , unliftio
, unliftio-core , unliftio-core
, unix , unix
@ -270,6 +271,8 @@ executable hbs2-peer
, LWWRef , LWWRef
, CheckMetrics , CheckMetrics
, HttpWorker , HttpWorker
, Browser
, Browser.Root
, Brains , Brains
, DispatchProxy , DispatchProxy
, CLI.Common , CLI.Common