1+ open Eio.Std
2+
13(* Ocsigen
24 * http://www.ocsigen.org
35 *
@@ -39,7 +41,7 @@ open%client Js_of_ocaml
3941[%% client open Js_of_ocaml_lwt ]
4042[%% shared open Eliom_content.Html ]
4143[%% shared open Eliom_content.Html.F ]
42- [%% shared open Lwt.Syntax ]
44+ [%% shared]
4345
4446let % client clX = Ot_swipe. clX
4547let % client clY = Ot_swipe. clY
@@ -587,9 +589,7 @@ let%client set_default_fail f =
587589 :> exn -> Html_types. div_content Eliom_content.Html. elt)
588590
589591let % shared generate_content generator =
590- Lwt. catch
591- (fun () -> Eliom_shared.Value. local generator () )
592- (fun e -> Lwt. return (default_fail e))
592+ try Eliom_shared.Value. local generator () with e -> default_fail e
593593
594594(* on the client side we generate the contents of the initially visible page
595595 asynchronously so the tabs will be rendered right away *)
@@ -606,8 +606,8 @@ let%client generate_initial_contents ~spinner sleeper gen =
606606
607607(* on the server side we generate all the visible contents right away *)
608608let % server generate_initial_contents ~spinner: _ _ gen =
609- let * contents = generate_content gen in
610- Lwt. return ( contents, ref @@ None )
609+ let contents = generate_content gen in
610+ contents, ref @@ None
611611
612612let % shared
613613 make_lazy
@@ -628,30 +628,30 @@ let%shared
628628 =
629629 let gen_contents =
630630 (gen_contents
631- :> (unit -> Html_types. div_content elt Lwt. t) Eliom_shared.Value. t list )
631+ :> (unit -> Html_types. div_content elt) Eliom_shared.Value. t list )
632+ in
633+ let sleeper, wakener =
634+ Promise. create
635+ (* TODO: ciao-lwt: Translation is incomplete, [Promise.await] must be called on the promise when it's part of control-flow. *)
636+ ()
632637 in
633- let sleeper, wakener = Lwt. wait () in
634- let mk_contents : int -> 'gen -> ('a elt * ('a elt * 'gen) option ref) Lwt.t =
638+ let mk_contents : int -> 'gen -> 'a elt * ('a elt * 'gen) option ref =
635639 fun i gen ->
636640 if i = position
637641 then generate_initial_contents ~spinner sleeper gen
638642 else
639- Lwt. return
640- @@
641643 let s = spinner () in
642644 s, ref @@ Some (s, gen)
643645 in
644- let * contents, spinners_and_generators =
645- Lwt. map List. split
646- @@ Lwt_list. map_s (fun x -> x)
647- @@ List. mapi mk_contents gen_contents
646+ let contents, spinners_and_generators =
647+ List. split (List. map (fun x -> x) (List. mapi mk_contents gen_contents))
648648 in
649649 let carousel =
650650 make ?a ?vertical ~position ?transition_duration ?inertia ?swipeable
651651 ?allow_overswipe ?update ?disabled ?full_height ?make_transform
652652 ?make_page_attribute contents
653653 in
654- Lwt. wakeup wakener carousel.elt;
654+ Promise. resolve wakener carousel.elt;
655655 (* generate initial content (client-side) *)
656656 (* replace spinners with content when switched to for the first time *)
657657 let _ =
@@ -677,7 +677,7 @@ let%shared
677677 | None -> Lwt. return () )
678678 : unit )]
679679 in
680- Lwt. return carousel
680+ carousel
681681
682682let % shared bullet_class i pos size =
683683 Eliom_shared.React.S. l2
0 commit comments