From d3b0482300bb2f42820ca90e5b101549e5e5b311 Mon Sep 17 00:00:00 2001 From: Harshithk951 <186480203+Harshithk951@users.noreply.github.com> Date: Tue, 11 Aug 2026 21:58:19 +0530 Subject: [PATCH] feat(widgets): add getMessage, getVariant, getIcon, and setIcon to StatusMessage widget --- .../widgets/src/feedback/StatusMessage.test.ts | 13 +++++++++++++ packages/widgets/src/feedback/StatusMessage.ts | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/packages/widgets/src/feedback/StatusMessage.test.ts b/packages/widgets/src/feedback/StatusMessage.test.ts index a1e41de28..eb167fe2a 100644 --- a/packages/widgets/src/feedback/StatusMessage.test.ts +++ b/packages/widgets/src/feedback/StatusMessage.test.ts @@ -181,4 +181,17 @@ describe('StatusMessage', () => { expect(widget.isDirty).toBe(false); }); + it('gets and sets message, variant, and custom icon', () => { + const widget = new StatusMessage('Ready', {}, { variant: 'info', icon: '★' }); + expect(widget.getMessage()).toBe('Ready'); + expect(widget.getVariant()).toBe('info'); + expect(widget.getIcon()).toBe('★'); + + widget.setMessage('Processing'); + widget.setVariant('warning'); + widget.setIcon('⚡'); + expect(widget.getMessage()).toBe('Processing'); + expect(widget.getVariant()).toBe('warning'); + expect(widget.getIcon()).toBe('⚡'); + }); }); \ No newline at end of file diff --git a/packages/widgets/src/feedback/StatusMessage.ts b/packages/widgets/src/feedback/StatusMessage.ts index 7aacff7cf..5484bc9c8 100644 --- a/packages/widgets/src/feedback/StatusMessage.ts +++ b/packages/widgets/src/feedback/StatusMessage.ts @@ -60,6 +60,10 @@ export class StatusMessage extends Widget { this.markDirty(); } + getMessage(): string { + return this._message; + } + setVariant(variant: StatusVariant): void { if (this._variant === variant) return; @@ -67,6 +71,20 @@ export class StatusMessage extends Widget { this.markDirty(); } + getVariant(): StatusVariant { + return this._variant; + } + + getIcon(): string | undefined { + return this._icon; + } + + setIcon(icon?: string): void { + if (this._icon === icon) return; + this._icon = icon; + this.markDirty(); + } + protected _renderSelf(screen: Screen): void { const rect = this._getContentRect(); const { x, y, width } = rect;