* Add conversations API
* Add web UI for conversations
* Add test for conversations API
* Add tests for ConversationAccount
* Improve web UI
* Rename ConversationAccount to AccountConversation
* Remove conversations on block and mute
* Change last_status_id to be a denormalization of status_ids
* Add optimistic locking
* Revert "Fix some icon names changed by the Font Awesome 5. (#8796)"
This reverts commit 3f9ec3de82c1a3879a2b092672f51c1caca76f5c.
* Revert "Migrate to font-awesome 5.0. (#8799)"
This reverts commit 8bae14591bfb4fc9dd9d89d8082ac0123b03edaa.
* Revert "Fix some icons names, unavailable in fontawesome5 (free license). (#8792)"
This reverts commit b9c727a945fea5afffb3e3a53279164adfc6e88f.
* Revert "Update the icon name changed by the Font Awesome 5. (#8776)"
This reverts commit 17af4d27da484fc35ecd4b4dce2443d24aa35d23.
* Revert "Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)"
This reverts commit 4b794e134d427dbc716606324adb9a885a74abec.
* Make dropdown animations respect their placement
Also fix the corner radius on the privacy dropdown button when using top placement
* Fix code style issue
This includes clicks on hashtags, mentions, display names and media in the
timeline; and usernames in reply-indicator, detailed status, and the boost
modal.
* Add keyword filtering
GET|POST /api/v1/filters
GET|PUT|DELETE /api/v1/filters/:id
- Irreversible filters can drop toots from home or notifications
- Other filters can hide toots through the client app
- Filters use a phrase valid in particular contexts, expiration
* Make sure expired filters don't get applied client-side
* Add missing API methods
* Remove "regex filter" from column settings
* Add tests
* Add test for FeedManager
* Add CustomFilter test
* Add UI for managing filters
* Add streaming API event to allow syncing filters
* Fix tests
* Remove Collapsable and use CSS instead
* Put the CW field between the toot we are replying to and the toot field
* Use same spacing between all fields in the composing column
* Adjust footer of getting started column
- Improved style
- Moved hotkeys, about this instance and logout to footer
- Removed FAQ, User Guide, Apps links
- Use hamburger icon for the column
* Add edit profile action button to profile and more to dropdown
* Add "Trending now" to getting started column
* Add preferences/security links on mobile layout
* Revert "Do not re-position scroll when loading more (inserting items from below) (#7344)"
This reverts commit 8c601b54ccf530bd193b4500fee439aa4e9162d0.
* Revert "Prevent timeline from moving when cursor is hovering over it (fixes#7278) (#7327)"
This reverts commit 58852695c8ec490239ed3812f82971f8c1e6c172.
* Mark currently selected privacy setting in privacy dropdown
* Prevent Enter keypresses from triggering dropdown display toggle twice
* Give focus to first/selected item of dropdown menus
* Implement keyboard navigation in privacy dropdown
* Implement keyboard navigation in generic dropdown menus
KeyboardEvent.key may be physical key name (Escape, Tab, etc.)
even in text composition and it causes hotkeys or suggestion selection.
So we need to check e.which or e.isComposing.
Checking e.which also allows us to avoid Esc key on compositionend in Safari.
This fixes following cases which causes hotkey action accidentally:
* hitting Esc key to cancel text composition (mostly in CJK)
Although events on cancelling composition are still heavily
browser / input method dependent, but this implementation would
covers current UI Events spec and some exceptions.
* hitting Esc key to close autocomplete suggestions
This PR changes to use keydown event instead of keyup event as well as other hotkeys.