From 5c636f11cdfed82634ee572645d765b704941b68 Mon Sep 17 00:00:00 2001 From: Joris Date: Tue, 3 Mar 2020 10:44:35 +0100 Subject: Initialize views from JavaScript --- src/animation.ml | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'src/animation.ml') diff --git a/src/animation.ml b/src/animation.ml index 7a598e5..35294dc 100644 --- a/src/animation.ml +++ b/src/animation.ml @@ -1,26 +1,27 @@ -let mainElt = Document.querySelectorUnsafe "#g-Layout__Main" - let isRunning = ref false -let start ~onHidden ~onEnded = +let start base ~onStart ~onEnd = if not !isRunning then let () = isRunning := true in - let () = Element.setClassName mainElt "g-Layout__HideMain" in - let delay = 200 in + let () = onStart () in + let () = Element.setClassName base "g-Animation" in + let delay = 400 in let _ = Js.Global.setTimeout (fun () -> - let () = onHidden () in - let () = Element.setClassName mainElt "" in - let _ = - Js.Global.setTimeout - (fun () -> - let () = onEnded () in - isRunning := false) - delay - in - ()) + let () = Element.setClassName base "" in + let () = onEnd () in + isRunning := false) delay in () else () + +let replaceChild scrollBase base mkChild = + start base + ~onStart:(fun _ -> + let () = Element.setScrollTop scrollBase 0 in + Element.appendChild base (mkChild ())) + ~onEnd:(fun _ -> + let _ = Element.removeFirstChild base in + ()) -- cgit v1.2.3