Commit Graph

137 Commits

Author SHA1 Message Date
Sasha Sorokin
61c07c3731
Replace repetitive blurhash code with component ()
This commit replaces all unnecessarily repeated code for decoding and
embedding blurhash canvases with separate component - <Blurhash>.

Under the hood Blurhash component will use effect dependent on its
props. This gives a few benefits: it will only be re-rendered whenever
the hash or width/height/dummy props update, and will not render if
canvas won't get to the final DOM, because then effect won't fire,
which prevents weird bugs like .
2020-07-09 13:01:30 +02:00
ThibG
d308a863fb
Fix WebUI crash on sensitive preview card with no preview thumbnail ()
Follow-up on  which only fixed half the call sites
2020-07-08 12:58:17 +02:00
ThibG
2581715491
Fix WebUI crash on sensitive preview card with no preview thumbnail ()
Fixes 
2020-07-08 09:22:23 +02:00
Eugen Rochko
99f3a55540
Add color extraction for audio thumbnails () 2020-07-05 18:28:25 +02:00
Eugen Rochko
64aac30733
Add customizable thumbnails for audio and video attachments ()
- Change audio files to not be stripped of metadata
- Automatically extract cover art from audio if it exists
- Add `thumbnail` parameter to `POST /api/v1/media`, `POST /api/v2/media` and `PUT /api/v1/media/:id`
- Add `icon` to represent it in attachments in ActivityPub
- Fix `preview_url` containing URL of missing missing image when there is no thumbnail instead of null
- Fix duration of audio not being displayed on public pages until the file is loaded
2020-06-29 13:56:55 +02:00
ThibG
a1ad2ad951
Change sensitive preview cards to not blur text ()
Also only require click-through for interactive embeds.
2020-06-26 14:31:13 +02:00
Takeshi Umeda
f7bdfec5bb
Change to correct the role of the boost button () 2020-06-25 22:44:19 +02:00
Takeshi Umeda
418f0a33e9
Add a visibility icon to status ()
* Add a visibility icon to status

* Change to using the icon element

* Fix RTL

* Add a public globe
2020-06-25 22:43:59 +02:00
ThibG
1d2b0d2121
Fix design issues with sensitive preview cards ()
* Fix design issues with sensitive preview cards

* Center “sensitive” label on preview image for interactive cards

* Add “button” role to sensitive preview card text
2020-06-25 22:42:01 +02:00
Eugen Rochko
bb9ca8a587
Fix audio/video/images/cards not reacting to window resizes in web UI ()
* Fix audio/video/images/cards not reacting to window resizes in web UI

* Update app/javascript/mastodon/features/audio/index.js

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-06-24 10:25:32 +02:00
Eugen Rochko
419ad6248b
Change volume control and download buttons in web UI ()
* Fix audio download button not starting download in web UI

* Fix volume controls on audio and video players in web UI

* Remove download button from video player in web UI
2020-06-23 12:20:14 +02:00
Eugen Rochko
75a2b8f815
Change design of audio players in web UI () 2020-06-21 02:27:19 +02:00
ThibG
8e96510b25
Hide sensitive preview cards with blurhash ()
* Use preview card blurhash in WebUI

* Handle sensitive preview cards
2020-06-06 17:41:56 +02:00
ThibG
c955f98d36
Fix expanded video player issues ()
Fixes 

- Expanding a paused video doesn't autoplay anymore
- Default volume level for the expanded video inherited from the original video

Position/playing state/volume are carried over from the original video player
to the modal, but they're not reported back to the modal as it would require
deeper changes.
2020-04-25 12:16:05 +02:00
ThibG
aeebbe90dc
Fix detailed view of direct messages displaying a 0 boost count ()
The boost count is already removed from private toots,
do the same with direct messages.
2020-03-10 18:39:47 +01:00
Bèr Kessels
fd76955f39
Code style improvements in JavaScript ()
* JS-linter: fix trailing comma's

* Configure eslinter to ignore this onchange error.
2020-03-08 16:02:36 +01:00
Eugen Rochko
39453de232
Change the string "Hide everything from …" to "Block domain …" in web UI ()
Blocking a domain is closer to blocking all its users than to a mute
action.
2020-03-05 23:20:49 +01:00
ThibG
02236332ba
Fix native share button not being displayed for unlisted toots () 2020-02-07 13:21:25 +01:00
Eugen Rochko
76f1ed834e
Add number animations () 2020-01-25 05:23:05 +01:00
Sasha Sorokin
1268e3b572 Fix unlocalized dropdown button title ()
In detailed status component, "More" action bar button wasn't
localized. This commit fixes it according to previously used code.
2020-01-24 22:37:04 +01:00
ThibG
12a9813a0c Fix reuse of detailed status components ()
Fixes 
2020-01-06 18:22:17 +01:00
Jeong Arm
76adde4fe2 Fix media open hotkey () 2019-12-05 00:50:51 +01:00
ThibG
27d5d02925 Fix blocking/unblocking users from status dropdown menu ()
Fixes 
2019-12-02 18:25:24 +01:00
ThibG
a690b3e470 Add hotkey for opening media files ()
* [WiP] Add hotkey to open media

* Give focus to play/pause button when opening video modal
2019-11-29 17:02:35 +01:00
Eugen Rochko
853a67ed16
Add relationship-based options to status dropdowns ()
Move bookmark action in inline statuses from action bar to dropdown
2019-11-19 21:24:16 +01:00
ThibG
dfea7368c9 Add bookmarks ()
* 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
2019-11-13 23:02:10 +01:00
BSKY
fccf83e1f2 Add noopener and/or noreferrer () 2019-10-24 22:44:42 +02:00
ThibG
9027bfff0c Add explanation to mute dialog, refactor and clean up mute/block UI ()
* Add some explanation to the mute modal dialog

* Remove `isSubmitting` from mute modal code, this wasn't used

* Refactor block modal

Signed-off-by: Thibaut Girka <thib@sitedethib.com>

* Refactor SCSS a bit

* Put mute modal toggle to the same side as in the report dialog for consistency

* Reword mute explanation

* Fix mute explanation styling

* Left-align all text in mute confirmation modal
2019-09-29 21:46:05 +02:00
ThibG
6914482d0a Change detailed status child ordering to sort self-replies on top ()
Fixes 
2019-08-30 01:57:38 +02:00
Eugen Rochko
2e99e3cab3
Fix more visual issues with the audio player ()
* 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
2019-08-25 15:09:19 +02:00
Eugen Rochko
4190e31626
Add audio player () 2019-08-23 22:38:02 +02:00
Eugen Rochko
1d8d553d8b
Revert "Change links in webUI to rewrite misleading links ()" ()
This reverts commit b31b232edf.
2019-08-06 12:09:28 +02:00
Eugen Rochko
2dee293c4c
Fix scroll to top in single column UI () 2019-08-01 19:17:17 +02:00
Eugen Rochko
706a48ee1f
Fix column header scrolling with the page ()
Regression from aa22b38
2019-08-01 12:26:58 +02:00
ThibG
b31b232edf Change links in webUI to rewrite misleading links ()
* [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
2019-07-30 12:13:29 +02:00
ThibG
99924f282f Memoize ancestorIds and descendantIds in detailed status view () 2019-07-02 16:03:54 +02:00
Eugen Rochko
f7f23b4a19
Add audio uploads ()
* Add audio uploads

Fix 

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
2019-06-19 23:42:38 +02:00
ThibG
e9ddd5a159 Put poll options behind content warnings ()
* 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
2019-06-08 17:40:59 +02:00
ThibG
3333250ede Fix React warning about legacy lifecycle calls and sensitive status resetting () 2019-05-29 17:33:15 +03:00
Takeshi Umeda
3b9c02506d Fix poll visibility on public pages ()
* 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.
2019-05-26 23:13:29 +02:00
Eugen Rochko
988342a56c
Fix null error in status component when determining showMedia state ()
* 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
2019-05-26 13:48:16 +02:00
ThibG
a472190729 Add a keyboard shortcut to hide/show media ()
* Move control of media visibility to parent component

* Add keyboard shortcut to toggle media visibility
2019-05-25 23:20:51 +02:00
Eugen Rochko
6fe474837c
Change poll options to alphabetic letters when status text is hidden ()
Fix 
2019-05-18 14:41:16 +02:00
ThibG
5121d9c12f When selecting a toot via keyboard, ensure it is scrolled into view () 2019-05-03 06:20:35 +02:00
Eugen Rochko
fba96c808d
Add blurhash ()
* 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
2019-04-27 03:24:09 +02:00
ashleyhull-versent
2b68fe5442 tinyfix 2: unrequired arguments ()
* unrequired argument

* unrequired argument
2019-04-06 12:02:03 +09:00
ThibG
6df4a82969 Add a “Block & Report” button to the block confirmation dialog () 2019-03-26 17:34:02 +01:00
Eugen Rochko
65fffeac3f
Redesign landing page () 2019-03-12 17:34:00 +01:00
Eugen Rochko
230a012f00
Add polls ()
* Add polls

Fix 

* 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
2019-03-03 22:18:23 +01:00
ThibG
041ff5fa9a Fix crash on public hashtag pages when streaming fails () 2019-02-16 14:53:27 +01:00