Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit cfd2807

Browse files
clentfortglennsl
andauthored
add resize observer (#171)
* add resize observer * Correct formatting Co-authored-by: Glenn Slotte <[email protected]>
1 parent 31c458c commit cfd2807

File tree

8 files changed

+67
-0
lines changed

8 files changed

+67
-0
lines changed

lib/js/src/Webapi.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@ var $$Performance = 0;
1414

1515
var Url = 0;
1616

17+
var $$ResizeObserver = 0;
18+
1719
exports.Base64 = Base64;
1820
exports.Canvas = Canvas;
1921
exports.Dom = Dom;
2022
exports.$$File = $$File;
2123
exports.$$Performance = $$Performance;
2224
exports.Url = Url;
25+
exports.$$ResizeObserver = $$ResizeObserver;
2326
/* Webapi__Dom Not a pure module */
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict';
2+
3+
4+
var $$ResizeObserverEntry = 0;
5+
6+
exports.$$ResizeObserverEntry = $$ResizeObserverEntry;
7+
/* No side effect */
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict';
2+
3+
var Caml_array = require("bs-platform/lib/js/caml_array.js");
4+
5+
var el = document.createElement("strong");
6+
7+
function handler(entries) {
8+
var entry = Caml_array.caml_array_get(entries, 0);
9+
entry.contentRect;
10+
entry.target;
11+
return /* () */0;
12+
}
13+
14+
var observer = new ResizeObserver(handler);
15+
16+
observer.observe(el);
17+
18+
observer.unobserve(el);
19+
20+
observer.disconnect();
21+
22+
exports.el = el;
23+
exports.handler = handler;
24+
exports.observer = observer;
25+
/* el Not a pure module */

src/Webapi.re

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ module Dom = Webapi__Dom;
1010
module File = Webapi__File;
1111
module Performance = Webapi__Performance;
1212
module Url = Webapi__Url;
13+
module ResizeObserver = Webapi__ResizeObserver;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module ResizeObserverEntry = Webapi__ResizeObserver__ResizeObserverEntry;
2+
3+
type t;
4+
5+
[@bs.new]
6+
external make: (array(ResizeObserverEntry.t) => unit) => t = "ResizeObserver";
7+
[@bs.new]
8+
external makeWithObserver: ((array(ResizeObserverEntry.t), t) => unit) => t =
9+
"ResizeObserver";
10+
11+
[@bs.send] external disconnect: t => unit = "";
12+
[@bs.send] external observe: (t, Dom.element) => unit = "";
13+
[@bs.send] external unobserve: (t, Dom.element) => unit = "";
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
type t;
2+
3+
[@bs.get] external contentRect: t => Dom.domRect = "";
4+
[@bs.get] external target: t => Dom.element = "";
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
let el = Webapi.Dom.document |> Webapi.Dom.Document.createElement("strong");
2+
3+
let handler = (entries) => {
4+
let entry = entries[0];
5+
let _: Dom.domRect = Webapi.ResizeObserver.ResizeObserverEntry.contentRect(entry);
6+
let _: Dom.element = Webapi.ResizeObserver.ResizeObserverEntry.target(entry);
7+
}
8+
9+
let observer = Webapi.ResizeObserver.make(handler);
10+
11+
Webapi.ResizeObserver.observe(observer, el);
12+
Webapi.ResizeObserver.unobserve(observer, el);
13+
Webapi.ResizeObserver.disconnect(observer);

0 commit comments

Comments
 (0)