mapcomplete/UI/Base/Lazy.ts

16 lines
424 B
TypeScript
Raw Normal View History

2022-09-08 21:40:48 +02:00
import BaseUIElement from "../BaseUIElement"
2021-11-07 16:34:51 +01:00
export default class Lazy extends BaseUIElement {
2022-09-08 21:40:48 +02:00
private readonly _f: () => BaseUIElement
2021-11-07 16:34:51 +01:00
constructor(f: () => BaseUIElement) {
2022-09-08 21:40:48 +02:00
super()
this._f = f
}
2021-11-07 16:34:51 +01:00
protected InnerConstructElement(): HTMLElement {
// The caching of the BaseUIElement will guarantee that _f will only be called once
2022-09-08 21:40:48 +02:00
return this._f().ConstructElement()
}
2022-09-08 21:40:48 +02:00
}