Skip to content

Commit 4220b90

Browse files
committed
fix(tweakpane): append pane as canvas child
1 parent 17a80f1 commit 4220b90

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

libs/tweakpane/src/lib/pane.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { afterNextRender, Directive, effect, inject, input, isSignal, signal } from '@angular/core';
1+
import { afterNextRender, DestroyRef, Directive, effect, inject, input, isSignal, signal } from '@angular/core';
2+
import { injectStore } from 'angular-three';
23
import { Pane } from 'tweakpane';
34
import { NgtTweakFolder } from './folder';
45
import { NgtTweakTitle } from './title';
@@ -16,18 +17,39 @@ export class NgtTweakPane {
1617

1718
private title = inject(NgtTweakTitle, { host: true });
1819
private folder = inject(NgtTweakFolder, { host: true });
20+
private store = injectStore();
1921
private pane = signal<Pane | null>(null);
2022

2123
constructor() {
2224
this.folder.isSelf = false;
2325

2426
afterNextRender(() => {
25-
const pane = new Pane({ title: this.title.title(), expanded: this.folder.expanded() });
27+
// the ngt-canvas
28+
const parentElement = this.store.snapshot.gl.domElement.parentElement?.parentElement;
29+
30+
const pane = new Pane({
31+
title: this.title.title(),
32+
expanded: this.folder.expanded(),
33+
});
34+
35+
if (parentElement && pane.element.parentElement) {
36+
parentElement.appendChild(pane.element.parentElement);
37+
}
2638

2739
this.pane.set(pane);
2840
this.folder.parentFolder.set(pane);
2941
});
3042

43+
inject(DestroyRef).onDestroy(() => {
44+
const pane = this.pane();
45+
if (!pane) return;
46+
47+
const parentElement = this.store.snapshot.gl.domElement.parentElement?.parentElement;
48+
if (!parentElement || !pane.element.parentElement) return;
49+
50+
pane.element.parentElement.remove();
51+
});
52+
3153
effect(() => {
3254
this.updateStyleEffect('top');
3355
});

0 commit comments

Comments
 (0)