summary refs log tree commit diff
path: root/v2/elements.ts
diff options
context:
space:
mode:
authorwlodekm <[email protected]>2024-11-09 16:37:43 +0200
committerwlodekm <[email protected]>2024-11-09 16:37:43 +0200
commit22a2150eef88430f9d9d5491a002e23e7813ac0c (patch)
tree16e275e98e7a358f617a5404230e894db267eee1 /v2/elements.ts
parent12617679441c80cb827cb486e269b56c14b055f4 (diff)
v2 progress
Diffstat (limited to 'v2/elements.ts')
-rw-r--r--v2/elements.ts20
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)
+        }
+    }
 }