dnsmanager-webclient/src/Web/Button.purs

114 lines
3.4 KiB
Text

module 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
, info_btn
, info_btn_abbr
) where
import Prelude (($), (<>))
import CSSClasses as C
import Halogen.HTML as HH
import Halogen.HTML.Properties as HP
import Halogen.HTML.Events as HE
btn_abbr_ :: forall w action.
Array HH.ClassName -- button classes
-> Array HH.ClassName -- inner div classes
-> String
-> String
-> action
-> HH.HTML w action
btn_abbr_ btnclasses divclasses explanation_ title action
= HH.button
[ HE.onClick \_ -> action
, HP.classes $ [C.button] <> btnclasses
] [ HH.abbr [ HP.title explanation_ ] [ HH.div [ HP.classes divclasses ] [ HH.text title ] ] ]
btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action
btn_abbr explanation_ title action = btn_abbr_ [] [] explanation_ title action
alert_btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action
alert_btn_abbr explanation_ title action = btn_abbr_ [C.is_danger] [] explanation_ title action
btn_modify :: forall w i. i -> HH.HTML w i
btn_modify action = btn_abbr_ [C.is_small, C.is_info] [C.is_size 4] "Edit" "⚒" action
btn_save :: forall w i. i -> HH.HTML w i
btn_save action = btn_ [C.is_info] "Save" action
btn_add :: forall w i. i -> HH.HTML w i
btn_add action = btn_ [C.is_info] "Add" action
btn_delete :: forall w i. i -> HH.HTML w i
btn_delete action = btn_abbr_ [C.is_small, C.is_danger] [C.is_size 4] "Delete" "✖" action
btn_ro :: forall w i. Array HH.ClassName -> String -> HH.HTML w i
btn_ro classes title
= HH.button
[ HP.classes $ [C.button] <> classes
] [ HH.text title ]
btn_modify_ro :: forall w i. HH.HTML w i
btn_modify_ro = btn_ro [C.is_small, C.is_warning] "modify"
btn_readonly :: forall w i. HH.HTML w i
btn_readonly = btn_ro [C.is_small, C.is_warning] "read only"
btn_delete_ro :: forall w i. HH.HTML w i
btn_delete_ro = btn_ro [C.is_small, C.is_warning] "remove"
btn_validation_ :: forall w i. String -> HH.HTML w i
btn_validation_ str = HH.button
-- [ HP.style "padding: 0.5rem 1.25rem;"
[ HP.type_ HP.ButtonSubmit
, HP.classes [C.button, C.is_primary]
]
[ HH.text str ]
btn_validation :: forall w i. HH.HTML w i
btn_validation = btn_validation_ "Validate"
btn_ :: forall w action. Array HH.ClassName -> String -> action -> HH.HTML w action
btn_ classes title action
= HH.button
[ HE.onClick \_ -> action
, HP.classes $ [C.button] <> classes
] [ HH.text title ]
btn :: forall w action. String -> action -> HH.HTML w action
btn title action = btn_ [] title action
info_btn :: forall w action. String -> action -> HH.HTML w action
info_btn title action = btn_ [C.is_info] title action
info_btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action
info_btn_abbr explanation_ title action = btn_abbr_ [C.is_info] [] explanation_ title action
alert_btn :: forall w action. String -> action -> HH.HTML w action
alert_btn title action = btn_ [C.is_danger] title action
delete_btn :: forall w i. i -> HH.HTML w i
delete_btn action = HH.button [HE.onClick \_ -> action, HP.classes [C.delete]] []
cancel_button :: forall w i. i -> HH.HTML w i
cancel_button action
= HH.button [ HP.classes [C.button]
, HE.onClick \_ -> action
] [HH.text "Cancel"]