114 lines
3.4 KiB
Text
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"]
|