* Fix lost focus after modal closes
Regression caused by the use of the wicg-inert polyfill
* Fix regression introduced by wicg-inert
* Catch errors to please CodeClimate
* Add backend support for bookmarks
Bookmarks behave like favourites, except they aren't shared with other
users and do not have an associated counter.
* Add spec for bookmark endpoints
* Add front-end support for bookmarks
* Introduce OAuth scopes for bookmarks
* Add bookmarks to archive takeout
* Fix migration
* Coding style fixes
* Fix rebase issue
* Update bookmarked_statuses to latest UI changes
* Update bookmark actions to properly reflect status changes in state
* Add bookmarks item to single-column layout
* Make active bookmarks red
Fetching statuses from all followed accounts at once takes too long
within Postgres. Fetching them one by one and merging in Ruby
could be a lot less resource-intensive
Because the query for dynamically fetching the home timeline is so
heavy, we can no longer offer it when the home timeline is missing
* Add voters count to polls
* Add ActivityPub serialization and parsing of voters count
* Add support for voters count in WebUI
* Move incrementation of voters count out of redis lock
* Reword “voters” to “people”
* Fix weird scroll-jumping behavior with pending items
* Treat pending items as unread items
* Fix scroll position being altered because of the “X new items” button
* Fix expiring polls not being displayed as such in the WebUI
* Reset expiration state and timer when a poll changes
* Refactor timer logic in `_setupTimer`, only set expiration if props have changed
* Refactor and do not use deprecated React lifecycles
* Fix more visual issues with the audio player
- Add horizontal baseline in the middle of waveform
- Fix audio player colors in light theme
- Use audio element instead of web audio API
- Do not render any bars until the file is loaded
- Do not allow interactions with waveform until the file is loaded
* Fix code style issue
* Restore hashtag suggestions from local tag history
* Append local hashtag suggestions instead of prepending them
* Do not display inaccurate usage statistics for hashtags not retrieved from API
* Fixup
* Fix “read more” button behing hidden (regression from #11404)
This has the side-effect of putting the “Read more” button below possibly
trunctated polls instead of putting the poll below the “Read more”
* Remove dead code
- Focus first item when activated via keyboard
- When the dropdown menu closes, give back the focus to
the actual element which was focused prior to opening the menu
* Trap tab in privacy dropdown
* Give focus back to last focused element when privacy dropdown menu closes
* Actually give back focus to the element that had it before clicking the dropdown
* Allow selecting menu items with the space bar in status dropdown menus
* Fix modals opened by keyboard navigation being immediately closed
* Fix menu items triggering modal actions
* Add Tab trapping inside dropdown menu
* Give focus back to last focused element when status dropdown menu closes
* [WiP] Show host for “misleading” links
* Disallow misleading targets which domain names are prefixes of link text
* Move decodeIDNA to app/javascript/mastodon/utils
* Add support for international domain names
* Change link origin tag color to darker text color
* Handle links to domains starting with www. as shortened by Mastodon
* [WiP] Ignore links that cannot be misread as URLs, rewrite other links
* Play animated custom emoji on hover in status
* Play animated custom emoji on hover in display names
* Play animated custom emoji on hover in bios/bio fields
* Add support for animation on hover on public pages emojis too
* Fix tests
* Code style cleanup
* Added logout to dropdown menu
* Triggering build-and-test with empty commit as it seems it failed due to some internal failure
* Looks fine, ready to review
* Added changes from review
* method can be null without any problems
* Also target can be null
* Add audio uploads
Fix#4827
Accept uploads of OGG, WAV, FLAC, OPUS and MP3 files, and converts
them to OGG. Media attachments get a new `audio` type. In the UI,
audio uploads are displayed identically to video uploads.
* Improve code style
* Put poll options behind CWs in WebUI
* Put polls behind CWs on public pages
* Add poll icon to public pages CWs
* Revert to not showing an icon in the CW button
* Fix poll visibility on public pages
* Revert "Fix poll visibility on public pages"
This reverts commit 54a9608add6f855bc6337fe3c65eaee7ba13db49.
* Revert "Change poll options to alphabetic letters when status text is hidden"
This reverts commit c53d67326201b2061990b1874a3547c3647f50d2.
* Fix null error in status component when determining showMedia state
Also update the showMedia value if the status passed to the
component changes
* Refactor media visibility computation into a defaultMediaVisibility function
* Fix default media visibility with reblogs
* Improvements to the single column layout
- Add follows and followers link to the right panel
- Increase margins around separators in right panel
- Add follow requests link with counter when account is locked to right panel
* Redirect from getting started to home when navigation panel is visible
* Add responsive panels to the single-column layout
* Fixes
* Fix not being able to save the preference
* Fix code style issues
* Set max-height on the compose textarea and add a link to relationship manager
* Move TabsBar rendering logic from CSS to the ColumnsArea component
* Add forceSingleColumn mode
* Add unread notifications counter to tabs bar
* Add toggle to control `forceSingleColumn`
* Increase paddings in mobile layout responsively at large sizes
* Refactor selectComposeSuggestion so that different paths can be updated
* Add suggestions in CW field
* Add emoji suggestion to poll options
* Attempt to fix CSS
* Hide suggestions by default
They will be enabled if the input has focus
- 3 items per row instead of 2
- Use blurhash for previews
- Animate/hover-to-play GIFs and videos
- Open media modal instead of opening status
- Allow opening status instead with ctrl+click and open in new tab
* Add blurhash
* Use fallback color for spoiler when blurhash missing
* Federate the blurhash and accept it as long as it's at most 5x5
* Display unknown media attachments as blurhash placeholders
* Improve style of embed actions and spoiler button
* Change blurhash resolution from 3x3 to 4x4
* Improve dependency definitions
* Fix code style issues
* Backend changes for custom emoji support in poll options
* Serialize poll emojis in REST API
* Render custom emojis in poll options
* Render custom emoji in poll options on public pages
* Do not crash the whole UI when loading an invalid column
* Add error boundary component to catch Web UI crashes
* Add stack trace on supported browsers
* Add component stack info, pre-format everything for github
* Make “Reload” a clickable link that calls window.location.reload()
* Remove elephant friend from error boundary, make title stand out more
* Simplify error boundary to only a graphic
* Fix ActivityPub poll results being serialized even with hide_totals
* Fix poll refresh button having a different font size
* Display poll in OpenGraph description
* Fix NoMethodError when serializing votes
Regression from #10158
* Fix polls on public pages being broken for non-logged-in users
* Do not show time remaining if poll has no expiration date
* Allow unselecting choices in multiple choice polls
* Properly disable checkboxes/radio buttons for polls in public pages
* Visually differentiate checkboxes and radio buttons
* Add polls
Fix#1629
* Add tests
* Fixes
* Change API for creating polls
* Use name instead of content for votes
* Remove poll validation for remote polls
* Add polls to public pages
* When updating the poll, update options just in case they were changed
* Fix public pages showing both poll and other media
* Avoid two-step rendering of statuses as much as possible
Cache width shared by Video player, MediaGallery and Cards at the
ScrollableList level, pass it down through StatusList and Notifications.
* Adjust scroll when new preview cards appear
* Adjust scroll when statuses above the current scroll position are deleted