Jacob and I got back to collaborating on mv desktop and it's been steady progress. This time we focused on getting the Compose screen working, and it works surprisingly well, not a lot of bugs in the basic use case of writing, previewing, and publishing.
One of the bigger challenges was setting up a system for dialogs and popups. Basically iOS and Android come with their own dialogs (and design guidelines for that), but when it comes to Electron (and the web), there isn't. I mean, there is window.alert
and window.confirm
but those are hideous. Most websites with pretty-looking dialogs have to role out their own solution.
The tricky thing with dialogs is that the cover the whole screen, and in the Cycle.js architecture in Manyverse, we took an ad-hoc solution where we're just providing dialogs as a driver, basically "shimming" the operating system's lack of dialogs (and/or their use in Electron). This is the smallest departure we can do from the existing app architecture. The other option was a complete overhaul of how dialogs work in the app, and that seemed like too much refactoring.
So I set up a funky "shim" of dialogs in Electron as a React app that runs in parallel to the Cycle-React app controlling all the screens in Manyverse. And @Powersource (phone) did the job of finding and integrating a sweet Material design component library that matches almost perfectly the dialogs in Android, and we got to this point (the dialog that appears when you press "..." on a message):