A few more abstract functions.

This commit is contained in:
Philippe Pittoli 2025-05-06 03:56:37 +02:00
parent b7a99d0612
commit c51644c729
6 changed files with 48 additions and 23 deletions

View file

@ -316,25 +316,25 @@ render state
migration_warning :: forall w. HH.HTML w Action
migration_warning =
HH.div [HP.classes [C.notification, C.is_warning]]
[ Web.p """
⚠️​ (FR) le service a été migré d'une ancienne base de code récemment.
Le développement se poursuit mais le service devrait être stable, mis à part quelques redémarrages de temps à autre.
Merci de nous contacter si vous voyez une erreur.
"""
, Web.p """
⚠️​ (EN) migration from old codebase was performed.
Development is still on-going but the service should be fairly stable.
Reboots will happen on occasion.
Please contact us in case an error occurs.
"""
]
Web.big_website_warning
[ Web.p """
⚠️​ (FR) le service a été migré d'une ancienne base de code récemment.
Le développement se poursuit mais le service devrait être stable, mis à part quelques redémarrages de temps à autre.
Merci de nous contacter si vous voyez une erreur.
"""
, Web.p """
⚠️​ (EN) migration from old codebase was performed.
Development is still on-going but the service should be fairly stable.
Reboots will happen on occasion.
Please contact us in case an error occurs.
"""
]
migration_warning_on_email_address :: forall w. HH.HTML w Action
migration_warning_on_email_address =
case state.user_data of
Just (Tuple Nothing _) ->
HH.div [HP.classes [C.notification, C.is_warning]]
Web.big_website_warning
[ Web.p """
⚠️​ MIGRATION (FR): veuillez indiquer une adresse email pour votre compte.
Tout compte sans adresse email sera supprimé sous 6 mois.

View file

@ -1,7 +1,7 @@
-- | `App.Log` is a simple log component, showing a list of messages.
-- | The list has a fixed size, the older messages are removed.
module App.Log where
{- Simple log component, showing the current events. -}
import Prelude (Unit, bind, discard, map, otherwise, pure, ($), (-), (<), (<>))
import Control.Monad.State (class MonadState)
@ -9,7 +9,8 @@ import Data.Array as A
import Data.Maybe (Maybe(..))
import Effect.Aff.Class (class MonadAff)
import Halogen as H
import Halogen.HTML as HH
import Web as Web
import App.Type.LogMessage
@ -44,9 +45,9 @@ initialState _ =
render :: forall m. State -> H.ComponentHTML Action () m
render { messages }
= HH.div_ [ render_messages ]
= Web.div [ render_messages ]
where
render_messages = HH.ul_ $ map (\msg -> HH.li_ [ HH.text msg ]) messages
render_messages = Web.ul $ map (\msg -> Web.li msg) messages
handleQuery :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a)
handleQuery = case _ of

View file

@ -19,9 +19,10 @@ module Web
, module Web.Table
, module Web.Tag
, module Web.Tile
, module Web.Warning
) where
import Web.Basics (article, article_, code, container, div_content, div_large_content, error_message, explanation, hdiv, hr, p, p_, quote, simple_quote, strong, text, textarea, textarea_, outside_link)
import Web.Basics
import Web.Box (box, box_, box_with_tag)
import Web.Button (alert_btn, alert_btn_abbr, btn, btn_, btn_abbr, btn_abbr_, btn_add, btn_delete, btn_delete_ro, btn_modify, btn_modify_ro, btn_readonly, btn_ro, btn_save, btn_validation, btn_validation_, cancel_button, delete_btn)
import Web.Checkbox (checkbox)
@ -39,3 +40,4 @@ import Web.Tab (fancy_tabs, tab_entry, tabs)
import Web.Table (table, table_)
import Web.Tag (tag, tag_ro, tags, tag_light_info)
import Web.Tile (tile, tile_, tile_danger, tile_warning)
import Web.Warning (big_website_warning)

View file

@ -2,6 +2,7 @@ module Web.Basics where
import Prelude (($), (<>))
import DOM.HTML.Indexed as DHI
import Halogen.HTML as HH
import Halogen.HTML.Events as HE
import Halogen.HTML.Properties as HP
@ -20,12 +21,27 @@ p str = HH.p_ [ HH.text str ]
p_ :: forall w i. Array HH.ClassName -> String -> HH.HTML w i
p_ classes str = HH.p [HP.classes classes] [ HH.text str ]
ul :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
ul content = HH.ul_ content
li :: forall w i. String -> HH.HTML w i
li content = li_ [] content
li_ :: forall w i. Array HH.ClassName -> String -> HH.HTML w i
li_ classes content = HH.li [HP.classes classes] [ HH.text content ]
strong :: forall w i. String -> HH.HTML w i
strong str = HH.strong_ [ HH.text str ]
hr :: forall w i. HH.HTML w i
hr = HH.hr_
div :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
div content = HH.div_ content
div_ :: forall w i. HH.Node DHI.HTMLdiv w i
div_ = HH.div
div_large_content :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
div_large_content content = HH.div [HP.classes [C.is_large, C.content]] content

View file

@ -1,3 +0,0 @@
module Web.Form where

9
src/Web/Warning.purs Normal file
View file

@ -0,0 +1,9 @@
module Web.Warning where
import Halogen.HTML as HH
import Halogen.HTML.Properties as HP
import CSSClasses as C
big_website_warning :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
big_website_warning content = HH.div [HP.classes [C.notification, C.is_warning]] content