From eb64f7c1d4f55a7e73647177dab6b7030ffb3564 Mon Sep 17 00:00:00 2001 From: Sebastian Herrlinger Date: Thu, 5 Mar 2026 15:57:21 +0100 Subject: [PATCH] btn --- .opencode/plugins/tui-smoke.tsx | 106 ++++++++++---------------------- 1 file changed, 34 insertions(+), 72 deletions(-) diff --git a/.opencode/plugins/tui-smoke.tsx b/.opencode/plugins/tui-smoke.tsx index 07d7d0b2e7..4b18110ca9 100644 --- a/.opencode/plugins/tui-smoke.tsx +++ b/.opencode/plugins/tui-smoke.tsx @@ -66,6 +66,21 @@ const tone = (api: TuiApi) => { } } +type Skin = ReturnType + +const Btn = (props: { txt: string; run: () => void; skin: Skin; on?: boolean }) => { + return ( + + {props.txt} + + ) +} + const parse = (params: Record | undefined) => { const tab = typeof params?.tab === "number" ? params.tab : 0 const count = typeof params?.count === "number" ? params.count : 0 @@ -197,14 +212,12 @@ const Screen = (props: { {tabs.map((item, i) => { const on = value.tab === i return ( - props.api.route.navigate(props.route.screen, { ...value, tab: i })} - backgroundColor={on ? skin.accent : skin.border} - paddingLeft={1} - paddingRight={1} - > - {item} - + props.api.route.navigate(props.route.screen, { ...value, tab: i })} + skin={skin} + on={on} + /> ) })} @@ -243,54 +256,12 @@ const Screen = (props: { - props.api.route.navigate("home")} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - go home - - props.api.route.navigate(props.route.modal, value)} - backgroundColor={skin.accent} - paddingLeft={1} - paddingRight={1} - > - modal - - props.api.route.navigate(props.route.alert, value)} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - alert - - props.api.route.navigate(props.route.confirm, value)} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - confirm - - props.api.route.navigate(props.route.prompt, value)} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - prompt - - props.api.route.navigate(props.route.select, value)} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - select - + props.api.route.navigate("home")} skin={skin} /> + props.api.route.navigate(props.route.modal, value)} skin={skin} on /> + props.api.route.navigate(props.route.alert, value)} skin={skin} /> + props.api.route.navigate(props.route.confirm, value)} skin={skin} /> + props.api.route.navigate(props.route.prompt, value)} skin={skin} /> + props.api.route.navigate(props.route.select, value)} skin={skin} /> @@ -335,22 +306,13 @@ const Modal = (props: { {props.api.keybind.print(props.input.screen)} screen command enter opens screen ยท esc closes - props.api.route.navigate(props.route.screen, { ...value, source: "modal" })} - backgroundColor={skin.accent} - paddingLeft={1} - paddingRight={1} - > - open screen - - props.api.route.navigate("home")} - backgroundColor={skin.border} - paddingLeft={1} - paddingRight={1} - > - cancel - + props.api.route.navigate(props.route.screen, { ...value, source: "modal" })} + skin={skin} + on + /> + props.api.route.navigate("home")} skin={skin} />