Buckets:
| import type { TuiPlugin, TuiPluginApi } from "@opencode-ai/plugin/tui" | |
| import type { BuiltinTuiPlugin } from "../builtins" | |
| import { createMemo, Show } from "solid-js" | |
| import { Tips } from "./tips-view" | |
| import { useBindings } from "../../keymap" | |
| const id = "internal:home-tips" | |
| function View(props: { api: TuiPluginApi; hidden: boolean; show: boolean; connected: boolean }) { | |
| useBindings(() => ({ | |
| commands: [ | |
| { | |
| name: "tips.toggle", | |
| title: props.hidden ? "Show tips" : "Hide tips", | |
| category: "System", | |
| namespace: "palette", | |
| run() { | |
| props.api.kv.set("tips_hidden", !props.api.kv.get("tips_hidden", false)) | |
| props.api.ui.dialog.clear() | |
| }, | |
| }, | |
| ], | |
| bindings: props.api.tuiConfig.keybinds.get("tips.toggle"), | |
| })) | |
| return ( | |
| <box width="100%" maxWidth={75} alignItems="center" paddingTop={3} flexShrink={1}> | |
| <Show when={props.show}> | |
| <Tips api={props.api} connected={props.connected} /> | |
| </Show> | |
| </box> | |
| ) | |
| } | |
| const tui: TuiPlugin = async (api) => { | |
| api.slots.register({ | |
| order: 100, | |
| slots: { | |
| home_bottom() { | |
| const hidden = createMemo(() => api.kv.get("tips_hidden", false)) | |
| const first = createMemo(() => api.state.session.count() === 0) | |
| const connected = createMemo(() => | |
| api.state.provider.some( | |
| (item) => item.id !== "opencode" || Object.values(item.models).some((model) => model.cost?.input !== 0), | |
| ), | |
| ) | |
| const show = createMemo(() => (!first() || !connected()) && !hidden()) | |
| return <View api={api} hidden={hidden()} show={show()} connected={connected()} /> | |
| }, | |
| }, | |
| }) | |
| } | |
| const plugin: BuiltinTuiPlugin = { | |
| id, | |
| tui, | |
| } | |
| export default plugin | |
Xet Storage Details
- Size:
- 1.77 kB
- Xet hash:
- 3ec6c93a888e16ba67cfa12019565b43b2cfb6751587de307678dbf4907e871a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.