mirror of
https://github.com/thepaperpilot/Planar-Pioneers.git
synced 2024-11-22 00:21:31 +00:00
Enabled using the BaseLayer features while creating the layer
This commit is contained in:
parent
77a3d92075
commit
496ea34a9b
1 changed files with 6 additions and 2 deletions
|
@ -89,15 +89,19 @@ export type GenericLayer = Replace<
|
|||
}
|
||||
>;
|
||||
|
||||
export function createLayer<T extends LayerOptions>(optionsFunc: () => T): Layer<T> {
|
||||
export function createLayer<T extends LayerOptions>(
|
||||
optionsFunc: (() => T) & ThisType<BaseLayer>
|
||||
): Layer<T> {
|
||||
return createLazyProxy(() => {
|
||||
const layer = optionsFunc() as T & Partial<BaseLayer>;
|
||||
const layer = {} as T & Partial<BaseLayer>;
|
||||
const emitter = (layer.emitter = createNanoEvents<LayerEvents>());
|
||||
layer.on = emitter.on.bind(emitter);
|
||||
layer.emit = emitter.emit.bind(emitter);
|
||||
|
||||
layer.minimized = persistent(false);
|
||||
|
||||
Object.assign(layer, optionsFunc.call(layer));
|
||||
|
||||
processComputable(layer as T, "color");
|
||||
processComputable(layer as T, "display");
|
||||
processComputable(layer as T, "name");
|
||||
|
|
Loading…
Reference in a new issue