fix type error

This commit is contained in:
“chrisshank” 2024-12-19 00:49:51 -08:00
parent cca4e6969b
commit 023f667be3
1 changed files with 8 additions and 7 deletions

View File

@ -2,17 +2,18 @@ import { FolkShape } from '../labs/folk-shape';
import { import {
ClientRectObserver, ClientRectObserver,
ClientRectObserverEntry, ClientRectObserverEntry,
type ClientRectObserverEntryCallback,
} from './client-rect-observer'; } from './client-rect-observer';
import { TransformEvent } from './TransformEvent'; import { TransformEvent } from './TransformEvent';
export type FolkObserverEntry = (entry: ClientRectObserverEntry) => void;
export type FolkObserverOptions = { export type FolkObserverOptions = {
iframeSelector?: string; iframeSelector?: string;
}; };
interface IframeChild { interface IframeChild {
rect: DOMRectReadOnly | null; rect: DOMRectReadOnly | null;
callbacks: Set<ClientRectObserverEntryCallback>; callbacks: Set<FolkObserverEntry>;
} }
type PostMessageSendEvent = type PostMessageSendEvent =
@ -38,7 +39,7 @@ class IframeObserver {
window.addEventListener('message', this.#onPostmessage); window.addEventListener('message', this.#onPostmessage);
} }
observeChild(selector: string, callback: ClientRectObserverEntryCallback) { observeChild(selector: string, callback: FolkObserverEntry) {
let child = this.#iframeChildren.get(selector); let child = this.#iframeChildren.get(selector);
if (child === undefined) { if (child === undefined) {
@ -55,7 +56,7 @@ class IframeObserver {
child.callbacks.add(callback); child.callbacks.add(callback);
} }
unobserveChild(selector: string, callback: ClientRectObserverEntryCallback) { unobserveChild(selector: string, callback: FolkObserverEntry) {
let child = this.#iframeChildren.get(selector); let child = this.#iframeChildren.get(selector);
if (child === undefined) return; if (child === undefined) return;
@ -141,7 +142,7 @@ export class FolkObserver {
return FolkObserver.#instance; return FolkObserver.#instance;
} }
#elementMap = new WeakMap<Element, Set<ClientRectObserverEntryCallback>>(); #elementMap = new WeakMap<Element, Set<FolkObserverEntry>>();
#iframeMap = new WeakMap<HTMLIFrameElement, IframeObserver>(); #iframeMap = new WeakMap<HTMLIFrameElement, IframeObserver>();
#vo = new ClientRectObserver((entries) => { #vo = new ClientRectObserver((entries) => {
@ -164,7 +165,7 @@ export class FolkObserver {
observe( observe(
target: Element, target: Element,
callback: ClientRectObserverEntryCallback, callback: FolkObserverEntry,
{ iframeSelector }: FolkObserverOptions = {}, { iframeSelector }: FolkObserverOptions = {},
): void { ): void {
if (target instanceof HTMLIFrameElement && iframeSelector) { if (target instanceof HTMLIFrameElement && iframeSelector) {
@ -201,7 +202,7 @@ export class FolkObserver {
unobserve( unobserve(
target: Element, target: Element,
callback: ClientRectObserverEntryCallback, callback: FolkObserverEntry,
{ iframeSelector }: FolkObserverOptions = {}, { iframeSelector }: FolkObserverOptions = {},
): void { ): void {
if (target instanceof HTMLIFrameElement && iframeSelector) { if (target instanceof HTMLIFrameElement && iframeSelector) {