From 22a2150eef88430f9d9d5491a002e23e7813ac0c Mon Sep 17 00:00:00 2001 From: wlodekm Date: Sat, 9 Nov 2024 16:37:43 +0200 Subject: v2 progress --- v2/elements.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'v2/elements.ts') diff --git a/v2/elements.ts b/v2/elements.ts index 530ecbb..56ef7da 100644 --- a/v2/elements.ts +++ b/v2/elements.ts @@ -27,6 +27,8 @@ export class Input extends Element { focusable: boolean = true; value: string = ""; + br = false; + isPassword: boolean = false; render(): void { @@ -53,24 +55,36 @@ export class Input extends Element { this.value = prevValue.substring(0, prevValue.length - 1) break; } + this.screen.render() return; } if (!key.sequence || key.sequence.length > 1 || key.name != key.sequence?.toLowerCase()) return; this.value += key.sequence; + this.screen.render() } - constructor(isPassword: boolean, ) { + constructor(isPassword: boolean = false, br: boolean = false) { super() + this.br = br this.isPassword = isPassword } } export class Button extends Text { focusable: boolean = true; - constructor (text: string) { - super(text) + onclick: ()=>void; + constructor (text: string, onclick=()=>{}) { + super(text); + this.onclick = onclick } render(): void { console.log(`(${(this.focused ? chalk.bgWhite : (a:string)=>a)(this.text)})`) } + + onkeypres(key: Key): void { + //@ts-ignore + if (["return", "space"].includes(key.name)) { + this.onclick.call(this.screen) + } + } } -- cgit 1.4.1-2-gfad0