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) { if (renderer.options.dev) {
block.chunks.mount.push( 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 { } else {
block.chunks.mount.push( block.chunks.mount.push(

@ -89,9 +89,9 @@ export function set_data_dev(text, data) {
text.data = 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) { if ('ResizeObserver' in window) {
add_resize_observer(node, fn); add_resize_observer(node, fn, opts);
} else { } else {
throw new Error(`${binding_name} uses the ResizeObserver API, but it is not supported in this browser.`); 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 // @ts-ignore ResizeObserver is not available in current tsconfig lib
const observer = new ResizeObserver(entries => fn(entries.values().next().value)); const observer = new ResizeObserver(entries => fn(entries.values().next().value));
observer.observe(node); observer.observe(node, opts);
return () => observer.disconnect(); return () => observer.disconnect();
} }

Loading…
Cancel
Save