* Part 1: Refactor views.
I'm in the middle of nowhere. It's cold, but I distinguish
lights.
It's dark, but my good ol' Elm keeps barking when something
looks wrong or dangerous.
I'm not afraid.
* Part 2: More views refactoring.
The night is deep, but I can see clear. The truth is
at the end of this path.
Perhaps.
* Part 3: The sun is rising.
The darkness is gently fading over, dawn is near. I can
now see mountains drawing in the horizon.
Elm is rather quiet, but keeps scrutating the shadows.
* Part 4: Moaar view splitting.
I follow some wrong path, but I'm back on track.
The sun is shining.
* Epilogue
That was actually fun.
* Get @mention in model
* Add autocomplete logic
* Get accounts to autocomplete from the server
* Add autocomplete css
* Check if we should show menu on account search
* Add keyboard events
* Update status with completed username
* Trigger autocomplete when getting accounts back
* Highlight choices on hover
* Put focus on textarea after updating it
* Fix clear draft
* Hit the server only on non empty query
* Lazzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
* Add missing lazy
* Add keyboard subscriptions
* Add images and display name
* Better menu visibility handling
* Add lazy to notifications
* Js formatting.
* Improve styles.
* Add unique keys to costly lists.
* Fix tests.
* Coding style nits.
* Use the encodeUrl helper in ApiUrl.
* Nanonit.
* Improve autocomplete box styling.
* CamelCase draft record
* Move all autocomplete stuff to Draft
* Send status to ports with the reply prefix.
* Clear draft after posting a status.
* Move ports setStatus call to a dedicated Command helper.
* Naming.
* Fix navigation with arrow keys in textarea
* Always autoselect the first item of the menu
* Connect to the websocket API
* Enable user timeline update through websockets
* Update elm-html-parser to latest
* Listem to local and global timelines
* Subscribe to global timeline only if it's displayed
* Some review changes
* Add elm-test and test notification aggregates
* Add new follow notification
* Fex addNotificationToAggregates
* Add test
* Clarify logic
* Update local and global timelines using WS
I've renamed the "public" timeline to "global", and removed the HTTP
reload of the user timeline when posting a Toot. We only rely on
websockets now.