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;