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 :: forall w. HH.HTML w Action
migration_warning = migration_warning =
HH.div [HP.classes [C.notification, C.is_warning]] Web.big_website_warning
[ Web.p """ [ Web.p """
⚠️​ (FR) le service a été migré d'une ancienne base de code récemment. ⚠️​ (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. 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. Merci de nous contacter si vous voyez une erreur.
""" """
, Web.p """ , Web.p """
⚠️​ (EN) migration from old codebase was performed. ⚠️​ (EN) migration from old codebase was performed.
Development is still on-going but the service should be fairly stable. Development is still on-going but the service should be fairly stable.
Reboots will happen on occasion. Reboots will happen on occasion.
Please contact us in case an error occurs. Please contact us in case an error occurs.
""" """
] ]
migration_warning_on_email_address :: forall w. HH.HTML w Action migration_warning_on_email_address :: forall w. HH.HTML w Action
migration_warning_on_email_address = migration_warning_on_email_address =
case state.user_data of case state.user_data of
Just (Tuple Nothing _) -> Just (Tuple Nothing _) ->
HH.div [HP.classes [C.notification, C.is_warning]] Web.big_website_warning
[ Web.p """ [ Web.p """
⚠️​ MIGRATION (FR): veuillez indiquer une adresse email pour votre compte. ⚠️​ MIGRATION (FR): veuillez indiquer une adresse email pour votre compte.
Tout compte sans adresse email sera supprimé sous 6 mois. 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 module App.Log where
{- Simple log component, showing the current events. -}
import Prelude (Unit, bind, discard, map, otherwise, pure, ($), (-), (<), (<>)) import Prelude (Unit, bind, discard, map, otherwise, pure, ($), (-), (<), (<>))
import Control.Monad.State (class MonadState) import Control.Monad.State (class MonadState)
@ -9,7 +9,8 @@ import Data.Array as A
import Data.Maybe (Maybe(..)) import Data.Maybe (Maybe(..))
import Effect.Aff.Class (class MonadAff) import Effect.Aff.Class (class MonadAff)
import Halogen as H import Halogen as H
import Halogen.HTML as HH
import Web as Web
import App.Type.LogMessage import App.Type.LogMessage
@ -44,9 +45,9 @@ initialState _ =
render :: forall m. State -> H.ComponentHTML Action () m render :: forall m. State -> H.ComponentHTML Action () m
render { messages } render { messages }
= HH.div_ [ render_messages ] = Web.div [ render_messages ]
where 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 :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a)
handleQuery = case _ of handleQuery = case _ of

View file

@ -19,9 +19,10 @@ module Web
, module Web.Table , module Web.Table
, module Web.Tag , module Web.Tag
, module Web.Tile , module Web.Tile
, module Web.Warning
) where ) 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.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.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) import Web.Checkbox (checkbox)
@ -39,3 +40,4 @@ import Web.Tab (fancy_tabs, tab_entry, tabs)
import Web.Table (table, table_) import Web.Table (table, table_)
import Web.Tag (tag, tag_ro, tags, tag_light_info) import Web.Tag (tag, tag_ro, tags, tag_light_info)
import Web.Tile (tile, tile_, tile_danger, tile_warning) 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 Prelude (($), (<>))
import DOM.HTML.Indexed as DHI
import Halogen.HTML as HH import Halogen.HTML as HH
import Halogen.HTML.Events as HE import Halogen.HTML.Events as HE
import Halogen.HTML.Properties as HP 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_ :: forall w i. Array HH.ClassName -> String -> HH.HTML w i
p_ classes str = HH.p [HP.classes classes] [ HH.text str ] 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 :: forall w i. String -> HH.HTML w i
strong str = HH.strong_ [ HH.text str ] strong str = HH.strong_ [ HH.text str ]
hr :: forall w i. HH.HTML w i hr :: forall w i. HH.HTML w i
hr = HH.hr_ 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 :: 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 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