Skip to content

Commit 8f70a08

Browse files
Chau TranChau Tran
Chau Tran
authored and
Chau Tran
committed
chore(core): clean up renderer
1 parent d88ca49 commit 8f70a08

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

libs/angular-three/src/lib/renderer/renderer.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import {
44
Injectable,
55
Injector,
66
NgZone,
7-
Renderer2,
87
RendererFactory2,
98
effect,
109
getDebugNode,
1110
inject,
1211
untracked,
12+
type Renderer2,
1313
type RendererType2,
1414
} from '@angular/core';
1515
import { NGT_CATALOGUE } from '../di/catalogue';
@@ -115,6 +115,8 @@ export class NgtRenderer implements Renderer2 {
115115
'three',
116116
Object.assign(
117117
{ __ngt_renderer__: { rawValue: undefined } },
118+
// NOTE: we assign this manually to a raw value node
119+
// because we say it is a 'three' node but we're not using prepare()
118120
{ __ngt__: { isRaw: true, parent: createSignal(null) } }
119121
)
120122
);
@@ -135,8 +137,8 @@ export class NgtRenderer implements Renderer2 {
135137
const object = injectedArgs[0];
136138
let localState = getLocalState(object);
137139
if (!Object.keys(localState).length) {
138-
prepare(object, { store, args: injectedArgs, primitive: true });
139-
localState = getLocalState(object);
140+
// NOTE: if an object isn't already "prepared", we prepare it
141+
localState = getLocalState(prepare(object, { store, args: injectedArgs, primitive: true }));
140142
}
141143
if (!localState.store) localState.store = store;
142144
const node = this.store.createNode('three', object);

libs/angular-three/src/lib/renderer/store.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export class NgtRendererStore {
7878
}
7979

8080
if (state[NgtRendererClassId.type] === 'comment') {
81-
// we attach an arrow function to the Comment node
81+
// NOTE: we attach an arrow function to the Comment node
8282
// In our directives, we can call this function to then start tracking the RendererNode
8383
// this is done to limit the amount of Nodes we need to process for getCreationState
8484
rendererNode[SPECIAL_INTERNAL_ADD_COMMENT] = (node?: NgtRendererNode) => {
@@ -319,9 +319,9 @@ export class NgtRendererStore {
319319
}
320320

321321
getCreationState() {
322-
const injectedArgs = this.firstNonInjectedDirective(NgtArgs)?.args || [];
323-
const injectedParent = this.firstNonInjectedDirective(NgtParent)?.parent || null;
324-
const store = this.tryGetPortalStore();
322+
const injectedArgs = this.#firstNonInjectedDirective(NgtArgs)?.args || [];
323+
const injectedParent = this.#firstNonInjectedDirective(NgtParent)?.parent || null;
324+
const store = this.#tryGetPortalStore();
325325
return { injectedArgs, injectedParent, store };
326326
}
327327

@@ -407,7 +407,7 @@ export class NgtRendererStore {
407407
}
408408
}
409409

410-
private firstNonInjectedDirective<T extends NgtCommonDirective>(dir: Type<T>) {
410+
#firstNonInjectedDirective<T extends NgtCommonDirective>(dir: Type<T>) {
411411
let directive: T | undefined;
412412

413413
let i = this.#comments.length - 1;
@@ -434,7 +434,7 @@ export class NgtRendererStore {
434434
return directive;
435435
}
436436

437-
private tryGetPortalStore() {
437+
#tryGetPortalStore() {
438438
let store: NgtStore | undefined;
439439
// we only care about the portal states because NgtStore only differs per Portal
440440
let i = this.portals.length - 1;

libs/angular-three/src/lib/renderer/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ChangeDetectorRef, EventEmitter, NgZone, untracked } from '@angular/core';
1+
import { EventEmitter, untracked, type ChangeDetectorRef, type NgZone } from '@angular/core';
22
import { supportedEvents } from '../dom/events';
33
import { removeInteractivity } from '../events';
44
import type { NgtEventHandlers, NgtInstanceNode } from '../types';

0 commit comments

Comments
 (0)