blob: 9e2ba5dd3adcbec72e0d0b1cadc9e0fc75cd8f19 [file] [log] [blame]
interface ResizeObserverEntry {
contentRect: {
height: number;
width: number;
};
}
type ObserveCallback = (entries: ResizeObserverEntry[]) => void;
const allCallbacks: ObserveCallback[] = [];
export default function ResizeObserver(callback: ObserveCallback) {
return {
disconnect() {
allCallbacks.splice(allCallbacks.indexOf(callback), 1);
},
observe() {
if (callback) {
allCallbacks.push(callback);
}
},
};
}
export const DEFAULT_OUTPUT: ResizeObserverEntry[] = [{ contentRect: { height: 300, width: 300 } }];
export function triggerResizeObserver(entries = DEFAULT_OUTPUT) {
allCallbacks.forEach(fn => {
fn(entries);
});
}