diff options
author | wlodekm <[email protected]> | 2024-11-09 16:37:43 +0200 |
---|---|---|
committer | wlodekm <[email protected]> | 2024-11-09 16:37:43 +0200 |
commit | 22a2150eef88430f9d9d5491a002e23e7813ac0c (patch) | |
tree | 16e275e98e7a358f617a5404230e894db267eee1 /v2/elements.ts | |
parent | 12617679441c80cb827cb486e269b56c14b055f4 (diff) |
v2 progress
Diffstat (limited to 'v2/elements.ts')
-rw-r--r-- | v2/elements.ts | 20 |
1 files changed, 17 insertions, 3 deletions
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) + } + } } |