add resize observer options

pull/5963/head
bluwy 5 years ago
parent 1ac349fdc6
commit d5947a2a59

@ -554,7 +554,7 @@ export default class ElementWrapper extends Wrapper {
if (renderer.options.dev) {
block.chunks.mount.push(
b`${resize_observer} = @add_resize_observer_dev(${this.var}, ${callee}.bind(${this.var}), ${this.var.name});`
b`${resize_observer} = @add_resize_observer_dev(${this.var.name}, ${this.var}, ${callee}.bind(${this.var}));`
);
} else {
block.chunks.mount.push(

@ -89,9 +89,9 @@ export function set_data_dev(text, data) {
text.data = data;
}
export function add_resize_observer_dev(node: HTMLElement, fn: (arg: any) => void, binding_name: string) {
export function add_resize_observer_dev(binding_name: string, node: HTMLElement, fn: (arg: any) => void, opts?: ResizeObserverOptions) {
if ('ResizeObserver' in window) {
add_resize_observer(node, fn);
add_resize_observer(node, fn, opts);
} else {
throw new Error(`${binding_name} uses the ResizeObserver API, but it is not supported in this browser.`);
}

@ -630,10 +630,10 @@ export function add_resize_listener(node: HTMLElement, fn: () => void) {
};
}
export function add_resize_observer(node: HTMLElement, fn: (arg: any) => void) {
export function add_resize_observer(node: HTMLElement, fn: (arg: any) => void, opts?: ResizeObserverOptions) {
// @ts-ignore ResizeObserver is not available in current tsconfig lib
const observer = new ResizeObserver(entries => fn(entries.values().next().value));
observer.observe(node);
observer.observe(node, opts);
return () => observer.disconnect();
}

Loading…
Cancel
Save