The `hasMore` property of timelines in redux store was set whenever an API
request returned only one page of results, *even* if the query only requested
newer statuses (using `since_id`), causing `hasMore` to be incorrectly set to
false whenever fetching new toots in a timeline, which happens each time
an account's timeline or media gallery is visited.
* Always use the scrollable class for the ScrollList component
Fixes#9499 as well as empty timelines' scrollbar “blinking”
between loading state and empty state.
* Do not display empty message when the list is known to have more elements
* Fix LoadMore usage in account media gallery
(Even though that codepath is probably never actually used…)
* Make account media gallery more consistent with account timeline
Display “load more” more consistently, add a loading indicator on first load.
* Fix “load more” button when no data has been fetched
* Add instance-wide setting to disable profile directory
When the profile directory is disabled:
- The “discoverable” setting is hidden from users
- The “profile directory” link is not shown on public pages
- /explore returns 404
* Move Setting.profile_directory check to a before_action filter
* Make custom emoji domains case sensitive #9351
* Fixup style in downcase_domain to comply with codeclimate.
* switch if! to unless
* Don't use transactions, operate in batches.
Also revert spurious schema change.
* Add setting to not aggregate reblogs
* Handle cases where user is nil in add_to_home and add_to_list
* Add hint for setting_aggregate_reblogs option
* Reword setting_aggregate_reblogs label
* fix non-escaped html in the profile settings
* provide a default profile text in case if there's no custom one
* update haml syntax
* simplify default profile name to username
* sanitize user-input html but display emojified icons
* Fix missing variable in directory page title
* Order hashtags by number of people instead of alphabetically
* Add icon to OpenGraph preview of directory page
* Prevent line breaks in hashtags and ensure lowercase in the table
* Use `update_column` instead of `update_attribute` in callback
`update_attribute` would normally cause callbacks to be called.
Called from a callback, it seems to stop further callbacks from executing.
`update_column` does the same work, but without calling callbacks or
preventing other callbacks from executing.
* Fix deadlocks by moving account stats update outside transaction