Commit graph

443 commits

Author SHA1 Message Date
Claire 2cd31b3177
Fix reply button on media modal not giving focus to compose form (#17626)
* Avoid compose form and modal management fighting for focus

* Fix reply button on media modal footer not giving focus to compose form
2022-02-25 00:51:01 +01:00
Eugen Rochko d4592bbfcd
Add explore page to web UI (#17123)
* Add explore page to web UI

* Fix not removing loaded statuses from trends on mute/block action
2022-02-25 00:34:33 +01:00
Eugen Rochko a9a43de6d1
Change report modal to include category selection in web UI (#17565)
* Change report modal to include category selection in web UI

* Various fixes and improvements

- Change thank you text to be different based on category
- Change starting headline to be different for account and status reports
- Change toggle components to have a checkmark when checked
- Fix report dialog being cut off on small screens
- Fix thank you screen offering mute or block if already muted or blocked
- Refactor toggle components in report dialog into one component

* Change wording on final screen

* Change checkboxes to be square when multiple options are possible
2022-02-23 20:03:46 +01:00
Eugen Rochko fd3a45e348
Add edit history to web UI (#17390)
* Add edit history to web UI

* Change history reducer to store items per status

* Fix missing loading prop
2022-02-09 01:17:07 +01:00
Claire 6b19e1e632
Fix incorrect use of old WebUI paths (#16773)
* Fix incorrect use of old WebUI paths

PR #16171 renamed some routes but missed some occurrences.
Without #16772, this leads to unreachable routes in those cases.

* Fix floating action button being displayed on statuses and compose screen
2021-09-27 07:24:04 +02:00
Claire 11502ae46e
Add aliases for WebUI routes that were renamed in #16171 (#16772)
* Add aliases for some WebUI routes that were renamed in #16171

Accounts and statuses routes need more work as they use different parameters.

* Add aliases for /statuses/* routes

* Add aliases for /accounts/* WebUI routes

Does not correctly set the “active” state on the navigation tabs but this is
a minor issue.

* Fix some routes

* Fix /accounts/:id/{media,followers,following} not loading on legacy routes
2021-09-27 07:23:48 +02:00
Eugen Rochko 52e5c07948
Change routing paths to use usernames in web UI (#16171) 2021-09-26 05:46:13 +02:00
Takeshi Umeda b2875b1864
Fix logout link not working in safari (#16574) 2021-08-06 12:14:13 +02:00
Claire a8a7066e97
Add confirmation modal when closing media edit modal with unsaved changes (#16518)
* Add confirmation modal when closing media edit modal with unsaved changes

* Move focal point media state to redux so it does not get erased by confirmation dialog

* Change upload modal behavior to keep it open while saving changes

Instead of closing it immediately and losing changes if they fail to save…

* Make it work with react-intl 2.9
2021-07-25 01:14:43 +02:00
Claire 3dcf3f2a3a
Fix minor code quality issues (#16502) 2021-07-14 05:36:23 +02:00
Claire d3791cca0c
Improve modal flow and back button handling (#16499)
* Refactor shouldUpdateScroll passing

So far, shouldUpdateScroll has been manually passed down from the very top of
the React component hierarchy even though it is a static function common to
all ScrollContainer instances, so replaced that with a custom class extending
ScrollContainer.

* Generalize “press back to close modal” to any modal and to public pages

* Fix boost confirmation modal closing media modal
2021-07-13 15:45:17 +02:00
David Sterry 7c27ccb8d8
Fix #16407 (#16432) 2021-06-27 22:31:28 +02:00
Claire 8428faa085
Fix OCR failure when erroneous lang data is in cache (#16386)
Fixes #15472

If the Tesseract worker fails at any point, re-try with cache settings that
overwrite the cache. It is difficult to catch more precise errors as those
are pretty opaque and do not occur when loading lang data but when trying to
detect text.
2021-06-15 22:11:07 +02:00
Claire 92f1d739b5
Fix unread notification count when polling (#16272)
* Fix unread notification count when polling

Fixes #16236

* Immediately fetch markers to avoid incorrect unread notification count
2021-05-19 23:51:05 +02:00
Mélanie Chauvel 0464240f19
Fix dialog close button (#16219)
* Fix dialog close button being white on almost white

* Make dialog close button slightly bigger
2021-05-11 21:15:57 +02:00
Eugen Rochko 0ad240cb6b
Change home timeline to reload after follow recommendations in web UI (#16160) 2021-05-07 14:33:57 +02:00
Claire 2c322addf3
Hide floating action button on onboarding page (#16082) 2021-04-20 21:28:01 +02:00
Eugen Rochko bf903dc510
Change onboarding by replacing tutorial with follow recommendations in web UI (#16060) 2021-04-19 14:45:15 +02:00
Claire abad99fa10
Fix crash in old browsers (#15985)
Fixes #15984
2021-04-01 00:00:12 +02:00
Claire 034f37b85a
Fix compose form behavior in mobile view (#15555)
* Fix ComposeForm being mounted twice in mobile view

Fixes #13094

* Fix compose form focus and pre-selection behavior in mobile view

* Split _updateFocusAndSelection out of componentDidUpdate
2021-03-24 10:19:07 +01:00
Claire 07b46cb332
Add dropdown for boost privacy in boost confirmation modal (#15704)
* Various dropdown code quality fixes

* Prepare support for privacy selection in boost modal

* Add dropdown for boost privacy in boost confirmation modal
2021-02-11 00:53:12 +01:00
ThibG 73ddb60c32
Fix OCR lang data failing to load (#15519)
Fixes #15472

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2021-01-09 03:48:50 +01:00
Takeshi Umeda cb5bb2313b
Fix expand video on public page (#15469) 2020-12-30 23:18:11 +01:00
ThibG 0b437325dc
Fix column swiping animation logic (#15301)
From the start, swiping columns was highly unreliable because the logic
could change `ReactSwipeableViews`'s `animateTransitions` property
mid-swipe.

PR #11200 partially fixed this, but at the unintended cost of disabling the
swipe animation altogether.

This PR changes the logic behind `shouldAnimate` to only disable the swiping
animation at the end of a column change not initiated by `ReactSwipeableViews`.

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2020-12-07 20:07:24 +01:00
Eugen Rochko 9620ee90be
Fix unnecessary re-rendering of various components when typing in web UI (#15286) 2020-12-07 19:36:36 +01:00
Eugen Rochko a8c471fcc0
Fix not being able to open audio modal in web UI (#15283)
Fix #15280

Also adds the new action bar and blurhash-based background
color to audio and video modals
2020-12-07 04:29:37 +01:00
Eugen Rochko 13206fcfb8
Fix media modal crashing when media has no blurhash (#15229) 2020-11-28 03:37:01 +01:00
Eugen Rochko 1e89e2ed98
Change media modals look in web UI (#15217)
- Change overlay background to match color of viewed image
- Add interactive reply/boost/favourite buttons to footer of modal
- Change ugly "View context" link to button among the action bar
2020-11-27 03:24:11 +01:00
abcang a2da02626e
Fixed ESLint error (#15214)
* eslint --fix

* fix consistent-return

* fix promise/catch-or-return

* ignore import rule
2020-11-23 17:35:14 +01:00
Eugen Rochko f970e1fab6
Fix hardcoded frame rate for frame by frame video navigation in web UI (#15198) 2020-11-21 23:19:04 +01:00
Eugen Rochko 18ca4e0e9a
Fix pop-out player appearing on mobile screens in web UI (#15157)
Fix #15092
2020-11-16 05:16:39 +01:00
Mashiro f720af6b72
Add limitation of image's max zoom rate (max to the original size of image) (#15094)
* limit image max scale rate to fit the actual image size

* replace with MIN_SCALE

* fix behavior on touch screen
2020-11-04 20:43:31 +01:00
dependabot[bot] e16b0fb15a
Bump detect-passive-events from 1.0.5 to 2.0.1 (#15003)
* Bump detect-passive-events from 1.0.5 to 2.0.1

Bumps [detect-passive-events](https://github.com/rafgraph/detect-passive-events) from 1.0.5 to 2.0.1.
- [Release notes](https://github.com/rafgraph/detect-passive-events/releases)
- [Commits](https://github.com/rafgraph/detect-passive-events/compare/v1.0.5...v2.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Migrate to detect-passive-events v2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-11-05 02:21:05 +09:00
Mashiro f645dad661
add mouse scroll lock in image expand view (#15088)
* add mouse scroll lock in image expand view

* enhancement
2020-11-03 06:06:45 +01:00
Mashiro 6a2db10f76
Add expand/compress image button on image view box (#15068)
* add zoom image button

* enhance zoom algorithm & add translation

* code structure

* code structure

* code structure

* enhance grab performance

* rm useless state

* fix behavior on Firefox & scroll lock & horizontal scroll with mousewheel

* remove scroll lock on MouseWheelEvent

* code structure

* enhance algorithm and code structure

* rm Gemfile.lock from tree

* codeclimate

* fix a stupid mistake
2020-11-02 21:16:38 +01:00
Mélanie Chauvel 1d07f51039
Make visibility icon clickable as part of the time of a toot (#15053)
- Makes permalink to a toot more easily clickable
- Fix clicking between icon and time in fact clicking the display name
- Fix clicking slightly under time in fact clicking the display name
2020-10-27 03:00:47 +01:00
mayaeh fb5f3be18f
Fix strings that could not be translated (#14980) 2020-10-15 21:24:58 +02:00
Eugen Rochko a69ca29473
Change how missing desktop notifications permission is displayed (#14985)
Add missing controls for new notification type
2020-10-15 16:24:47 +02:00
ThibG 4c45b43cb8
Change how CDN_HOST is passed down to make assets build reproducible (#14381)
* Change how CDN_HOST is passed down to make assets build reproducible

* Change webpacker/webpack configuration to dynamically load publicPath based on meta header

* Fix embedded layout missing the cdn-host meta header
2020-10-13 01:19:35 +02:00
OSAMU SATO 96761752ec
Add duration parameter to muting. (#13831)
* Adding duration to muting.

* Remove useless checks
2020-10-13 01:01:14 +02:00
ThibG f54ca3d08e
Fix browser notification permission request logic (#13543)
* Add notification permission handling code

* Request notification permission when enabling any notification setting

* Add badge to notification settings when permissions insufficient

* Disable alerts by default, requesting permission and enable them on onboarding
2020-10-13 00:37:21 +02:00
ThibG 63770d3aac
Ignore alt-key hotkeys in text fields (#14942)
Fixes #14862

This used to be the case until #13987, which introduced a hotkey to toggle
the Content Warning field.

Unfortunately, MacOS relies on the “alt” key for many things, including
composing text (see #14862), therefore, even if that makes the CW toggle
hotkey significantly less useful, it makes sense to not interfere with
composing toots.
2020-10-05 22:04:06 +02:00
Takeshi Umeda bec8b12bb5
Fix mark as read in notifications to be saved immediately (#14907)
* Fix mark as read in notifications to be saved immediately

* fix code style
2020-10-01 04:17:46 +02:00
ThibG 78e45a5285
Add option to disable swiping motions across the WebUI (#13885)
Fixes #13882
2020-09-30 19:31:03 +02:00
Eugen Rochko d88a79b456
Add pop-out player for audio/video in web UI (#14870)
Fix #11160
2020-09-28 13:29:43 +02:00
ThibG ff89025979
Add unread notification markers (#14818)
* Add unread notification markers

Fixes #14804

* Allow IntersectionObserverArticle's children to be updated
2020-09-26 20:57:07 +02:00
ThibG 5fc5a9f9f1
Update Tesseract.js (#14708)
* [WiP] Update Tesseract.js

- Update Tesseract.js to 2.2.1
- Use versioned file names
- differentiate two progression states: preparing OCR and detecting picture

* Get rid of copy-webpack-plugin
2020-09-01 00:26:10 +02:00
han@highemelry 8b35ed96c0
Add a visibility icon to boost modal (#14292)
Related to tootsuite#14123.
Add visibility icon not only status/detailed-status but also modal window for boost.
2020-07-12 15:22:48 +02:00
Eugen Rochko 6cc5b822f5
Fix audio and video items in account gallery in web UI (#14282)
* Fix audio and video items in account gallery in web UI

- Fix audio items not using thumbnails
- Fix video items not using custom thumbnails
- Fix video items autoplaying like GIFs

* Change audio and video items in account gallery to autoplay when opened in web UI

* Fix code style issue
2020-07-10 22:09:28 +02:00
Eugen Rochko 06fc6a9cd4
Add ability to choose media thumbnail in web UI (#14244) 2020-07-07 12:14:19 +02:00
Eugen Rochko 99f3a55540
Add color extraction for audio thumbnails (#14209) 2020-07-05 18:28:25 +02:00
Eugen Rochko 162adf61f2
Fix audio modals not using blurhash and poster (#14199) 2020-07-02 16:27:35 +02:00
Yamagishi Kazutoshi 5e8f51b29f
Replace to testing-library from enzyme (#14152) 2020-06-29 13:58:07 +02:00
ThibG 791402af7c
never filter own posts from timeline (#14128)
Signed-off-by: Thibaut Girka <thib@sitedethib.com>

Co-authored-by: ash lea <example@thisismyactual.email>
2020-06-23 16:01:34 +02:00
ThibG 6b6a9d0ea3
Add hotkey for toggling content warning composer field (#13987) 2020-06-09 10:32:32 +02:00
ThibG eeddb1a624
Fix unsent toot confirmation dialog not popping up in single column (#13888) 2020-05-31 20:38:56 +02:00
ThibG 5aff2a6957
Fix timeline markers not working on Chrome (#13887)
* Periodically save timeline markers

This saves timeline markers immediately upon message arrival, but not more
than once every 5 minutes.

This does not change how the markers are saved on closing the window,
except that it avoids submitting them if there is no need for it.

* Use the Fetch API when possible instead of XHR on window unload
2020-05-29 16:14:16 +02:00
Takeshi Umeda 26b08a3c54
Add remote only to public timeline (#13504)
* Add remote only to public timeline

* Fix code style
2020-05-10 10:36:18 +02:00
Eugen Rochko 0d62e09707
Fix failing jest test (#13681) 2020-05-08 21:21:57 +02:00
ThibG c955f98d36
Fix expanded video player issues (#13541)
Fixes #13536

- 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
Bèr Kessels fd76955f39
Code style improvements in JavaScript (#13159)
* JS-linter: fix trailing comma's

* Configure eslinter to ignore this onchange error.
2020-03-08 16:02:36 +01:00
Eugen Rochko f52c988e12
Add announcements (#12662)
* Add announcements

Fix #11006

* Add reactions to announcements

* Add admin UI for announcements

* Add unit tests

* Fix issues

- Add `with_dismissed` param to announcements API
- Fix end date not being formatted when time range is given
- Fix announcement delete causing reactions to send streaming updates
- Fix announcements container growing too wide and mascot too small
- Fix `all_day` being settable when no time range is given
- Change text "Update" to "Announcement"

* Fix scheduler unpublishing announcements before they are due

* Fix filter params not being passed to announcements filter
2020-01-23 22:00:13 +01:00
Matt Panaro 9cbbc50fcd Fix 12661 (#12744)
* Revert "persist last-intersected status update and restore when ScrollableList is restored"

This reverts commit 07e26142ef6a8e74bd2ac5e9b461a5a1699bd4c8.

accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661.  https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list

* Revert "cache currently-viewing status id to avoid calling redux with identical value"

This reverts commit c93df2159fbd3888a5c48d8a8b8ae61dbbc54b89.

accidentally merged spurious code in https://github.com/tootsuite/mastodon/pull/12661.  https://github.com/tootsuite/mastodon/pull/12735 removes the slowdown that this code was trying to solve; and other functionality successfully restores the view state of the list
2020-01-02 22:46:42 +01:00
Matt Panaro 31f7c3fc5d Summary: fix slowness due to layout thrashing when reloading a large … (#12661)
* Summary: fix slowness due to layout thrashing when reloading a large set of status updates

in order to limit the maximum size of a status in a list view (e.g. the home timeline), so as to avoid having to scroll all the way through an abnormally large status update (see https://github.com/tootsuite/mastodon/pull/8205), the following steps are taken:
•the element containing the status is rendered in the browser
•its height is calculated, to determine if it exceeds the maximum height threshold.
Unfortunately for performance, these steps are carried out in the componentDidMount(/Update) method, which also performs style modifications on the element.  The combination of  height request and style modification during javascript evaluation in the browser leads to layout-thrashing, where the elements are repeatedly re-laid-out (see https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing & https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers).
The solution implemented here is to memoize the collapsed state in Redux the first time the status is seen (e.g. when fetched as part of a small batch, to populate the home timeline) , so that on subsequent re-renders, the value can be queried, rather than recalculated.  This strategy is derived from https://github.com/tootsuite/mastodon/pull/4439 & https://github.com/tootsuite/mastodon/pull/4909, and should resolve https://github.com/tootsuite/mastodon/issues/12455.

Andrew Lin (https://github.com/onethreeseven) is thanked for his assistance in root cause analysis and solution brainstorming

* remove getSnapshotBeforeUpdate from status

* remove componentWillUnmount from status

* persist last-intersected status update and restore when ScrollableList is restored

e.g. when navigating from home-timeline to a status conversational  thread and <Back again

* cache currently-viewing status id to avoid calling redux with identical value

* refactor collapse toggle to pass explicit boolean
2019-12-29 05:39:48 +01:00
ThibG 911cc14481 Add follow_request notification type (#12198)
* Add follow_request notification type

The notification type already existed in the backend but was never pushed
to the front-end. This also means translation strings were also available
for the backend, from the notification mailer.

Unlike other notification types, these are off by default, to match what
I remember of Gargron's view on the topic: that follow requests should not
clutter notifications and should instead be reviewed at the user's own
leisure in the dedicated column.

Since follow requests have their own column, I've deemed it unnecessary to
add a specific tab for them in the notification quick filter.

* Show follow request link in single-column if there are pending requests, even if account isn't locked

* Push follow requests from notifications to the follow_requests list

* Offer to accept or reject follow request from the notification

* Redesign follow request notification
2019-12-01 17:25:29 +01:00
ThibG a690b3e470 Add hotkey for opening media files (#12498)
* [WiP] Add hotkey to open media

* Give focus to play/pause button when opening video modal
2019-11-29 17:02:35 +01:00
ThibG e7a7f88df7 Fix OCR with delete & redraft (#12465) 2019-11-25 01:42:51 +01:00
ThibG e86234b1e9 Change media description label to be context-sensitive (#12270)
“Describe for the visually impaired” makes no sense when the uploaded media
is an audio file.
2019-11-21 11:39:07 +01:00
ThibG dfea7368c9 Add bookmarks (#7107)
* 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
ThibG 3db3c10762 Fix filtered out items being counted as pending items (#12266) 2019-11-04 13:02:16 +01:00
ThibG 7488a9e154 Add support for submitting media description with ctrl+enter (#12272) 2019-11-04 12:59:17 +01:00
Hinaloe 8568018935 dont crash with null-ref (#12274) 2019-11-04 12:58:19 +01:00
umonaca f4be89e24d Improve swipe experience (#12168) 2019-10-24 22:48:11 +02:00
BSKY fccf83e1f2 Add noopener and/or noreferrer (#12202) 2019-10-24 22:44:42 +02:00
Eugen Rochko 6ebd74f4fa
Fix media editing modal changing dimensions when image loads (#12131) 2019-10-10 05:21:38 +02:00
Eugen Rochko c9b8ba50f8
Fix audio attachments opening in video modal from media tab in web UI (#12056)
Fix video attachments having a GIF label in media tab in web UI
2019-10-03 03:34:58 +02:00
Eugen Rochko f51f99c3c2
Fix media editing modal and profile directory in light theme (#12059)
Also:

- Fix embed modal in light theme
- Fix confirmation modal in light theme
2019-10-03 03:17:29 +02:00
Jeong Arm 3abe003f59 Fix drag and drop link to composebox (#12055) 2019-10-02 17:10:56 +02:00
ThibG 559da46fd4 Fix typo in mute confirmation dialog (#12044) 2019-10-01 23:55:11 +02:00
ThibG 9027bfff0c Add explanation to mute dialog, refactor and clean up mute/block UI (#11992)
* 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
Yamagishi Kazutoshi 0a49b26793 Do not add margin light when opening modal on mobile (#11830) 2019-09-29 14:30:58 +02:00
ThibG 7baedcb61e Use blob URL for Tesseract to avoid CORS issues (#11964) 2019-09-27 02:16:11 +02:00
Eugen Rochko bdeff5ae15
Fix web UI allowing uploads past status limit via drag & drop (#11863)
Fix #11659
2019-09-16 20:42:19 +02:00
ThibG c00ab575b7 Fix media description button being disabled at 420 characters instead of 1500 (#11836) 2019-09-14 00:52:56 +02:00
Eugen Rochko b6381bdc7d
Change max length of media descriptions from 420 to 1500 characters (#11819)
Fix #11658
2019-09-13 16:00:34 +02:00
Eugen Rochko e445a8af64
Add timeline read markers API (#11762)
Fix #4093
2019-09-06 13:55:51 +02:00
mayaeh 1f22b8197c Integrate translation strings for the Profile Directory. (#11722)
Run `yarn manage:translations en`
2019-09-02 18:12:27 +02:00
Eugen Rochko cb447b28c4
Add profile directory to web UI (#11688)
* Add profile directory to web UI

* Add a line of bio to the directory
2019-08-30 00:14:36 +02:00
ThibG 81f864d4da Add special alert for throttled requests (#11677)
* Add special alert for throttled requests

* Use an extra attribute instead of an array
2019-08-27 16:50:39 +02:00
ThibG fd3d45d38f Add confirmation modal when logging out from the web app (#11671)
* [WiP] Add a confirmation modal before logging out from the web interface

* Add confirmation to logout link in getting started footer

* Please CodeClimate
2019-08-26 18:24:10 +02:00
ThibG bd4099d976 Change window resize handler to switch to/from mobile layout as soon as needed (#11656) 2019-08-25 15:48:50 +02:00
Eugen Rochko 4190e31626
Add audio player (#11644) 2019-08-23 22:38:02 +02:00
ThibG 2ca6b2bb6c Improve focal point modal on mobile (#11575)
* Reduce padding around report modal and focal point modal title

* Increase max allowed height for focal point modal content
2019-08-15 22:49:00 +02:00
ThibG d37126fd03 Allow clicking behind preview (#11576) 2019-08-15 22:47:51 +02:00
Eugen Rochko 1bea318197
Fix edit media modal on small screens, touch events (#11573) 2019-08-15 20:28:56 +02:00
Eugen Rochko dfe6059889
Fix tesseract.js being part of the common chunk (#11571)
* Fix tesseract.js being part of the common chunk

Besides being 620 KB large, it also causes a modules-related runtime
error in production...

* Fix code style issue

* Fix modules error
2019-08-15 17:24:45 +02:00
Eugen Rochko 28636f43e4
Add OCR tool to media editing modal (#11566) 2019-08-15 15:13:26 +02:00
Eugen Rochko 23f7afa562
Add media editing modal (#11563)
Move media description input to a modal and unite that modal with
the focal point modal. Add a hint about choosing focal points, as
well as a preview of a 16:9 thumbnail. Enable the user to watch
the video next to the media description input.

Fix #8320
Fix #6713
2019-08-14 04:07:32 +02:00
Eugen Rochko c09ecbc53e
Add indicator of unread content to window title when web UI is out of focus (#11560)
Fix #1288
2019-08-13 12:22:16 +02:00
Eugen Rochko 9072fe5ab6
Add trends UI with admin and user settings (#11502) 2019-08-06 17:57:52 +02:00
Eugen Rochko 706a48ee1f
Fix column header scrolling with the page (#11458)
Regression from aa22b38
2019-08-01 12:26:58 +02:00
Eugen Rochko aa22b38fdb
Change single-column mode to scroll the whole page (#11359)
Fix #10840
2019-07-19 09:25:22 +02:00
Eugen Rochko 9b1d3e4acb
Add option to disable real-time updates in web UI (#9984)
Fix #9031
Fix #7913
2019-07-16 06:30:47 +02:00
ThibG 072158ee97 Fix swiping columns on mobile sometimes failing (#11200)
Fixes #9779
2019-06-28 13:52:15 +02:00
ThibG 01e362316c Do not scroll in the compose panel on single-column (#11093) 2019-06-16 18:46:55 +02:00
ThibG dd45c63921 List attachments in reply indicator and boost modal (#10997)
* Add media attachments list to boost modal

* Add attachment list to reply indicator
2019-06-13 17:04:52 +02:00
ThibG 1b4dcc3f78 Only show profile directory link when it's enabled (#11064) 2019-06-13 00:16:27 +02:00
Eugen Rochko 6077eca240
Add profile directory link to single column navigation panel (#10963) 2019-06-04 19:50:38 +02:00
Takeshi Umeda d93b82af87 Improvement variable height in single column layout (#10917)
* Improvement variable height of compose and navigation panel in single column layout

* Fix wrong quotes and missing commas
2019-06-02 10:05:54 +02:00
Eugen Rochko 8d9755e5f5
Change links in right panel to open in the same tab (#10848)
For Rambox compatibility
2019-05-29 17:33:35 +03:00
Eugen Rochko 451e5980b6
Refactor footers in web UI into a single component (#10846) 2019-05-27 21:58:41 +02:00
Eugen Rochko 0e445ebb13
Improvements to the single column layout (#10835)
* 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
2019-05-26 02:55:37 +02:00
ThibG a472190729 Add a keyboard shortcut to hide/show media (#10647)
* 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 1e5532e693
Add responsive panels to the single-column layout (#10820)
* 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
2019-05-25 21:27:00 +02:00
Eugen Rochko 84dc21d55d
Various improvements to single column layout (#10809)
- Add potential side panels to single column layout
- Hide FAB on large screens
2019-05-23 20:01:10 +02:00
Eugen Rochko 9ddeb30f90
Add forceSingleColumn prop to <UI /> (#10807)
* 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
2019-05-23 01:35:22 +02:00
Aurélien Reeves fe8a8f779e Add confirm modal for unboosting toots (#10287)
[#3815]

Display the boost modal also when unboosting toots.
2019-05-09 22:39:26 +02:00
ThibG 4f73cde4e1 Minor account media gallery fixes (#10695)
* Make the cursor icon consistant across media types in account media gallery

* Fix the video player modal causing scroll position to reset
2019-05-04 17:36:43 +02:00
Eugen Rochko eb63217210
Add button to view context to media modal (#10676)
* Add "view context" button to media modal when opened from gallery

* Add "view context" button to video modal

Allow closing the video modal by navigating back in the browser,
just like the media modal
2019-05-03 16:16:30 +02:00
ThibG 5121d9c12f When selecting a toot via keyboard, ensure it is scrolled into view (#10593) 2019-05-03 06:20:35 +02:00
Eugen Rochko fba96c808d
Add blurhash (#10630)
* 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
kedama d763d39d26 Fix modal items cannot scroll on touch devices (#10605) 2019-04-22 14:55:50 +02:00
ThibG 6df4a82969 Add a “Block & Report” button to the block confirmation dialog (#10360) 2019-03-26 17:34:02 +01:00
Eugen Rochko c20d096e6a
Show disappointed elephant if web UI crashes (#10275)
* 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
2019-03-15 05:35:45 +01:00
mayaeh 46e806cd2f Rename from instance to server. (#9938) 2019-02-05 19:11:24 +01:00
tmm576 750c67660d Allow multiple files upload through web UI, including drag & drop (#9856)
* Allow drag and drop uploads of multiple files to compose

* Calculate aggregate upload progress for single action

* Allow multiple uploads to compose through traditional input, consolidate update file limit logic, provide file limit feedback
2019-02-02 20:22:05 +01:00
Eugen Rochko 1f95190202
Refactor icons in web UI to use Icon component (#9951)
* Refactor uses of icons to an Icon component in web UI

* Refactor options passed to the Icon component

* Make tests work with absolute component paths
2019-02-01 00:14:05 +01:00
tmm576 4cd0a10793 Allow event defaults on index for text data transfer (#9840) 2019-01-17 23:27:51 +01:00
tmm576 30af4ee65f Hide floating action button on search and getting started pages (#9826) 2019-01-17 09:22:12 +01:00
Hinaloe d6433b3931 make draggingOver state off correctly (#9797)
* make draggingOver stat off correctly

* ignore safari and Edge

* Revert "ignore safari and Edge"

This reverts commit b9b93ea3674877670161207a3f9b3a4f82b68a2d.

* Revert "make draggingOver stat off correctly"

This reverts commit f5fd6b94dc1d4b812e0b910b2b4f35792c3ea3a1.

* clear drag stack when drop
2019-01-14 07:44:26 +00:00
Yamagishi Kazutoshi 8f5fdab5bf Update dependencies for Node.js (2018-12-31) (#9669)
* Update react-* to v16.7.0

* Upgrade react-hotkeys to v1.1.4

* Update react-intl to v2.7.2

* Update react-select to v2.2.0

* Update react-swipeable-views to v0.13.0

* Upgrade react-textarea-autosize to v7.1.0

* Upgrade redux to v4.0.1

* Upgrade reselect to v4.0.0

* Update raf to v3.4.1

* Update enzyme to v3.8.0

* Update rails-ujs to v5.2.2

* Update axios to v0.18.0

* Update http-link-header to v1.0.2

* Update rellax to v1.7.1

* Update intersection-observer to v0.5.1

* Update stringz to v1.0.0

* Upgrade babel-eslint to v10.0.1

* Update @babel/* to v7.2.x

* Update babel-plugin-react-intl to v3.0.1

* Update babel-plugin-transform-react-remove-prop-types to v0.4.21

* Upgrade dotenv to v6.2.0

* Update express to v4.16.4

* Update webpack to v4.28.3

* Upgrade autoprefixer to v9.4.3

* Update babel-loader to v8.0.4

* Upgrade css-loader to v2.1.0

* Upgrade file-loader to v3.0.1

* Update marky to v1.2.1

* Update mini-css-extract-plugin to v0.5.0

* Update offline-plugin to v5.0.6

* Update style-loader to v0.23.1

* Update eslint-plugin-jsx-a11y to v6.1.2

* yarn upgrade

* fix

* Replace webpack-manifest-plugin to webpack-assets-manifest

* Replace node-zopfli to @gfz/zopfli

* Remove monkey-patch for http-link-header
2018-12-31 18:11:48 +01:00
ThibG e25947db4a Sanitize and sandbox toot embeds (#9552) 2018-12-23 02:16:35 +01:00
ThibG e70e496e29 Clean up dead code in public timeline code (#9565) 2018-12-18 22:00:18 +01:00
Eugen Rochko 9cb26bb56b
Add new first-time tutorial (#9531)
* Prepare to load onboarding as a full page

* Update the first-time introduction

* Improve responsive design

* Replace speech bubble with logo

* Increase text size and reword first paragraph
2018-12-17 11:07:17 +01:00
namelessGonbai bb5558de62 Implement adding a user to a list from their profile (#9062)
* Add add user to list from thier profile

* Fix listAdderCss
2018-11-05 18:52:38 +01:00
ThibG adb06baef6 Handle global hotkeys even when no element has focus (#8998)
This fixes hotkeys not working when pressing the column
“back” button, for instance.
2018-10-17 16:56:16 +02:00
Eugen Rochko 28401962ca Change documentation URL (#8898)
* Change documentation URL

* Fix hardcoded documentation URL in locales
2018-10-06 14:33:36 +09:00
Eugen Rochko 3d7f68c273
Revert Font Awesome 5 upgrade (#8810)
* Revert "Fix some icon names changed by the Font Awesome 5. (#8796)"

This reverts commit 3f9ec3de82.

* Revert "Migrate to font-awesome 5.0. (#8799)"

This reverts commit 8bae14591b.

* Revert "Fix some icons names, unavailable in fontawesome5 (free license). (#8792)"

This reverts commit b9c727a945.

* Revert "Update the icon name changed by the Font Awesome 5. (#8776)"

This reverts commit 17af4d27da.

* Revert "Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)"

This reverts commit 4b794e134d.
2018-09-28 02:11:14 +02:00
Naoki Kosaka 8bae14591b Migrate to font-awesome 5.0. (#8799) 2018-09-27 17:08:56 +02:00
theboss b9c727a945 Fix some icons names, unavailable in fontawesome5 (free license). (#8792)
- pencil => pencil-alt
- sliders => sliders-h

related: #8484 #8776
2018-09-26 22:48:21 +09:00
ThibG 05f90e3695 Adjust beforeUnload conditions (#8746)
Fixes #8701
2018-09-21 18:54:17 +02:00
Yamagishi Kazutoshi 0ddbccf7e6 Upgrade Babel to version 7.0.0 (#5925) 2018-09-14 17:59:48 +02:00
luzpaz 40dd19be37 Misc. typos (#8694)
Found via `codespell -q 3 --skip="./app/javascript/mastodon/locales,./config/locales"`
2018-09-14 00:53:09 +02:00
ThibG 4959ead07c Fix media description in various media modals (#8678) 2018-09-13 20:31:59 +02:00
ThibG 661a89ea74 Autofocus comment textarea in report modal (#8689) 2018-09-13 15:27:29 +02:00
Frederic Hemberger 7c12c7b124 Add aria-label to floatingActionButton (#8574) 2018-09-02 15:51:06 +02:00
Jakub Mendyk 5129f6f2aa Add messages informing that collections are empty (fixes #4115) (#8418)
* Add messages informing that collections are empty

Adds empty messages to blocked users, domain blocks, favourited statuses, users
that favourited toot, follow requests, followers of given user, user's being
followed by given user, lists, muted users, toots' boosts.

Switched from using ScrollContainer to ScrollableList and/or added empty
message's text.

Fixes #4115

* Update localization files with strings for #4115

* Fix whitespace issues pointed out by codeclimate
2018-08-26 16:39:37 +02:00
Annika Backstrom 25f6f41052 Add hotkey for follow requests (#8307) 2018-08-20 03:44:16 +02:00
M Somerville 298ee84488 Fix #8264 - Do not override ctrl/cmd+click. (#8265)
This includes clicks on hashtags, mentions, display names and media in the
timeline; and usernames in reply-indicator, detailed status, and the boost
modal.
2018-08-18 12:50:32 +02:00
Eugen Rochko 60df87f6f0
Compensate for scrollbar disappearing when media modal visible (#8100)
* Compensate for scrollbar disappearing when media modal visible

Make auth pages backgrounds lighter

* Fix typo
2018-07-31 01:14:33 +02:00