-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwelcome.eliom
45 lines (40 loc) · 1.16 KB
/
welcome.eliom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[%%shared
open Lwt
open Eliom_lib
open Eliom_content
]
open Html5
open F
module Welcome(E:App_stub.ENV) = struct
module Dumb_password = Dumb_password.Dumb_password(E)
let main_service =
Eliom_service.App.service ~path:[] ~get_params:Eliom_parameter.unit ()
let () =
E.Config.App.register
~service:main_service
(fun () () ->
let all_public = E.Mimes.get_all_public_services ()
|> List.map (fun (name, service) ->
a service [pcdata name] ()
) in
let logged =
User.login_signal ()
|> Eliom_react.S.Down.of_react
in
let login_widget = Dumb_password.main_widget () in
let logged_mention =
[%client
~%logged
|> React.S.map begin function
| Some l ->
Html5.F.(span [pcdata l])
| None ->
Html5.F.(div [~%login_widget; span [pcdata "unlogged"]]) end
|> Html5.R.node
] |> Html5.C.node in
E.F.main_box [logged_mention; div all_public]
)
end
[%%client
open Dumb_password
]