From 78c3051342ce68fd7a99a1dc102ba7f13fb029b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 2 Jan 2026 00:06:41 +0100 Subject: [PATCH] Fix destruction --- packages/example/src/TestUi2.ts | 4 ++- packages/example/src/TestUi2Component.tsx | 33 +++++++++++++++++++ .../react-godot-renderer/src/Reconciler.ts | 6 ++-- 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 packages/example/src/TestUi2Component.tsx diff --git a/packages/example/src/TestUi2.ts b/packages/example/src/TestUi2.ts index 52d4d16..d2d2e62 100644 --- a/packages/example/src/TestUi2.ts +++ b/packages/example/src/TestUi2.ts @@ -1,9 +1,11 @@ import { Control } from "godot" +import { Renderer } from "react-godot-renderer" +import { TestUi2Component } from "./TestUi2Component" export default class TestUi2 extends Control { // Called when the node enters the scene tree for the first time. _ready(): void { - + Renderer.renderComponent(this, TestUi2Component) } } diff --git a/packages/example/src/TestUi2Component.tsx b/packages/example/src/TestUi2Component.tsx new file mode 100644 index 0000000..b4ae992 --- /dev/null +++ b/packages/example/src/TestUi2Component.tsx @@ -0,0 +1,33 @@ +import Godot from "godot" +import { useState } from "react" +import { Component } from "react-godot-renderer" + + +const HFlowContainer = Component.make(Godot.HFlowContainer) +const VFlowContainer = Component.make(Godot.VFlowContainer) +const Label = Component.make(Godot.Label) +const CheckBox = Component.make(Godot.CheckBox) + +export function TestUi2Component() { + const [show, setShow] = useState(false) + + const checkBoxRef = CheckBox.useRef() + Component.useSignal(checkBoxRef, "toggled", setShow) + + + return ( + + + + + {show && + + ) +} diff --git a/packages/react-godot-renderer/src/Reconciler.ts b/packages/react-godot-renderer/src/Reconciler.ts index f0a5f69..c96312e 100644 --- a/packages/react-godot-renderer/src/Reconciler.ts +++ b/packages/react-godot-renderer/src/Reconciler.ts @@ -160,9 +160,9 @@ export const make = () => { // getInstanceFromScope(_scopeInstance) { // throw new Error("Function not implemented.") // }, - // detachDeletedInstance(_node) { - // throw new Error("Function not implemented.") - // }, + detachDeletedInstance(node) { + node.queue_free() + }, // supportsHydration: false, // NotPendingTransition: undefined,