Comments (3)
There's no way to do this yet, though you can totally implement this in the manner like you're suggesting.
That said, this would also be an awesome feature for the Key Bubble. Transferring this issue accordingly.
from bubbles.
Cool I like this idea @ghostsquad.
I definitely think I need to improve the navigation in the preview pane and handle focus properly.
Let me know if you find an elegant solution for your project
from bubbles.
@dlvhdr I think this could be implemented by "focusing" a particular element/component in the UI, whether that's invisible or not would be up to you, with 1 key press. Then subsequent key presses flow only to the focused element. Allowing you to avoid timing race conditions.
This is what I figured out just last night.
func (m Model) onKeyPress(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
switch {
case key.Matches(msg, m.keys.FocusLeft):
return m.refocus(-1)
case key.Matches(msg, m.keys.FocusRight):
return m.refocus(1)
case key.Matches(msg, m.keys.Quit):
return m, tea.Quit
default:
return m.updateComponent(m.state.currentFocus, msg)
}
return m, nil
}
func (m Model) updateComponent(key componentKey, teaMsg tea.Msg) (Model, tea.Cmd) {
compUpdate, compCmd := m.components[key].Update(teaMsg)
m.components[key] = compUpdate
return m, compCmd
}
Let me know if this helps. Also, I absolutely love https://github.com/dlvhdr/gh-dash - I've been using it as inspiration for a different project of mine. I just really the clean look of it, and use of icons and such. In fact, I discovered this focusing method as I was looking at gh-dash
and wanted an alternative to the keybinding you setup there. You use ctrl+u
and ctrl+d
to scroll the "sidebar", and I wanted to leverage more of the default keybindings of the viewport (pageup/down, etc). Anyways, cheers 🍻
from bubbles.
Related Issues (20)
- Optimize Textarea’s `wrap()` HOT 3
- Making multiple inputs blink HOT 2
- Extended Latin characters not supported in textinput on Windows HOT 11
- help: rendering issues when the text doesn't fit into the available width
- table: honor a column width set to 0 HOT 3
- List interface bug for downstream packages
- `Bug`: Pasting String Bypasses CharLimit in textarea HOT 2
- Table cell padding no longer works since 1ba1200 HOT 15
- Viewport may not scroll down to the end of large text inputs HOT 8
- feat: Add NumberInput in bubbles HOT 4
- textinput: add support for wrapping the prompt HOT 2
- How to define the color of a specified cell in a table
- List : list panel pushed into title/status panels by padding on items HOT 1
- Table cell selection
- table printing breaks in narrow windows HOT 2
- styled placeholders HOT 2
- Slim cursor HOT 2
- viewport: ANSI color information seems to be bleeding into surrounding text
- Running on Windows 7 results in an error. HOT 1
- textinput: when `Width` is larger than the capacity of the placeholder, it causes a panic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bubbles.