* Add followed_tags route.
This at least gets us to the point where the page can actually be
rendered, although it doesn't display any hashtags (yet?).
Attempting to implement #20763.
* Fix minor issues.
* I've got the followed tags data partially working
But the Hashtag component errors for some reason. Something about the
value of the history attribute being invalid.
* Fix a mistake in the code
* Minor change.
* Get the followed hashtags list fully working.
Still need to add the Follow/Unfollow buttons, though.
* Resolve JS linter issues.
* Add pagination logic to followed tags list view.
However, it currently loads further pages immediately on page load, so
that's not ideal. Need to figure that one out.
* Appease the linter.
* Apply suggestions from code review
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
* Fixes and resolve some other feedback.
* Use set/update instead of setIn/updateIn.
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
* Update react-overlays to latest version
* Fix breaking changes in dropdown menus
* Use react-overlays built-in arrow positioning feature
* Re-implemented `.dropdown-menu__arrow` to have a defined width and height to improve positioning
* Moved wrapping div (`.dropdown-menu` from `DropdownMenu` to `Dropdown`)
* Wrap button in a span to solve issue with ref
* Temporarily remove animations
* Fix breaking changes in emoji picker
* Wrap EmojiPickerMenu in a div where react-overlays’ ref is added
* Fix breaking changes in language dropdown
* Fix breaking changes in privacy dropdown
* Fix breaking changes in search form
* Add animations back using `@keyframes`
* Fix arrow color in light theme
* Fix linting issue
* Remove unused `mounted` state
* Remove `placement` state from components and redux
And remove the placement state from props of the menu components.
* Remove abolution position to fix flip issue
* Remove z-index to fix modals and overlay positions
* Fix lint issues
* Set placement in privacy and language components
Copy the placement state into the `PrivacyDropdown` and `LanguageDropdown` components, to apply correct styling to the buttons depending on which placement the Overlay has.
* Move `placement` state to correct component
#⃣
This bug is caused by the emoji consisting of:
U+23 #
U+FE0F
U+20E3 ⃣
Because it starts with a #, it's interpreted as an anchor link, which is not passed to the API. Therefore, the API sees no emoji to react with and answers correctly with a 404.
Follow-up to #18960
The aforementioned PR fixed an issue in which switching notification filters
while notifications were loading prevented the query for the new filter from
running, but another issue remained: if the first query completed after the
second one, its results would override the second one, thus leading to the
same issue.
This commit cancels the first request if it is still running, before issuing
the second one.
* Add database table for status-specific filters
* Add REST endpoints, entities and attributes
* Show status filters in /filters interface
* Perform server-side filtering for individual posts filters
* Fix filtering on context mismatch
* Refactor `toServerSideType` by moving it to its own module
* Move loupe and delete icons to their own module
* Add ability to filter individual posts from WebUI
* Replace keyword list by warnings (expired, context mismatch)
* Refactor server-side filtering code
* Add tests