From 90c55fccbf8690a813eb718456fc51b10fc0517e Mon Sep 17 00:00:00 2001 From: cptbtptpbcptdtptp Date: Sat, 8 Feb 2025 16:45:22 +0800 Subject: [PATCH] feat: udpate code --- packages/ui/src/component/advanced/Text.ts | 3 ++- tests/src/ui/Text.test.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/component/advanced/Text.ts b/packages/ui/src/component/advanced/Text.ts index 63b8e9c19d..0d7c6ed3dd 100644 --- a/packages/ui/src/component/advanced/Text.ts +++ b/packages/ui/src/component/advanced/Text.ts @@ -598,7 +598,8 @@ export class Text extends UIRenderer implements ITextRenderer { this._text === "" || this._fontSize === 0 || (this.enableWrapping && size.x <= 0) || - (this.overflowMode === OverflowMode.Truncate && size.y <= 0) + (this.overflowMode === OverflowMode.Truncate && size.y <= 0) || + !this._getRootCanvas() ); } diff --git a/tests/src/ui/Text.test.ts b/tests/src/ui/Text.test.ts index ad6fd892d7..15498414f5 100644 --- a/tests/src/ui/Text.test.ts +++ b/tests/src/ui/Text.test.ts @@ -42,6 +42,26 @@ describe("Text", async () => { expect(label.enableWrapping).to.eq(true); }); + it("get bounds", () => { + const textWithoutCanvas = root.addComponent(Text); + textWithoutCanvas.text = "hello world"; + const bounds = textWithoutCanvas.bounds; + expect(bounds.min).to.deep.include({ x: -50, y: -50, z: 0 }); + expect(bounds.max).to.deep.include({ x: 50, y: 50, z: 0 }); + + const labelBounds = label.bounds; + expect(labelBounds.min).to.deep.include({ x: -50, y: -50, z: 0 }); + expect(labelBounds.max).to.deep.include({ x: 50, y: 50, z: 0 }); + label.text = "hello world"; + const labelBounds2 = label.bounds; + expect(labelBounds2.min).to.deep.include({ x: -50, y: -50, z: 0 }); + expect(labelBounds2.max).to.deep.include({ x: 50, y: 50, z: 0 }); + (label.entity.transform).size.x = 200; + const labelBounds3 = label.bounds; + expect(labelBounds3.min).to.deep.include({ x: -100, y: -50, z: 0 }); + expect(labelBounds3.max).to.deep.include({ x: 100, y: 50, z: 0 }); + }); + it("emoji", () => { const textEntity = canvasEntity.createChild("text");