import type * as flexui from '@openflexui/core'
import { type GeneralComponent } from './component'
export class MediaQueryObserver {
private _$comp: GeneralComponent
private _$observer: flexui.backend.Observer | null = null
constructor(comp: GeneralComponent) {
this._$comp = comp
}
observe(
descriptor: flexui.backend.MediaQueryStatus,
listener: (status: { matches: boolean }) => void,
) {
if (this._$observer) this._$observer.disconnect()
this._$observer =
this._$comp._$.getBackendContext()?.createMediaQueryObserver?.(descriptor, listener) || null
}
disconnect() {
if (this._$observer) this._$observer.disconnect()
this._$observer = null
}
}