RC Day 47 - It Is Still Hot, Comboboxes Are Hard

Published: 2022-07-19
|
Updated: 2022-07-19

Despite the heat and some other distractions, a productive day. But wow, is it hard to implement a combobox.

  • Nice coffee chat with another Recurser. We’re gonna pair on zero-knowledge proofs in Rust later in the week.
  • Lots of progress on the combobox component of The Emotinomicon.
    • Separated visual and browser focus states
    • Implemented a bunch of missing ARIA annotations. I hope I have this right and need to test it.
    • Implemented scroll. Since a combobox is not a native element, the list is not a select box, which leaves me in charge of scroll position. Yikes. Learned some things exist, like HTMLElement.offsetTop. Will still definitely have to look them up next time I need them.
    • Introduced a weird input element width regression. It shrinks a little when there are characters inside. Fixing is a tomorrow task.
    • Some refactoring to try and bring sanity to the state handling. It’s all component local state, but the component is now large, so it feels like global state manipulation everywhere. Need to bring more sanity. Perhaps smaller sub-components will help, perhaps I need better patterns.
    • A bunch more stuff.

This was all solo coding. I am not being good at inviting others in. After this project, I’d like to build something in React, which will be easier to pair on.