Commit Graph

4153 Commits

Author SHA1 Message Date
2a5da8c961 refactor IntersectionObserver to observe viewport in single-column mode (#12735) 2019-12-31 21:39:25 +01:00
ca78b1473e Fix undefined error regression in status component in web UI (#12712)
Regression from #12661
2019-12-30 03:55:11 +01:00
0e8c0287d0 Fix shortNumberFormat to within 3 chars without units (#12706) 2019-12-29 16:59:25 +01:00
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
dace054c06 [Glitch] Fix manual scrolling issue on Firefox/Windows
Port dc0750abc3 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-19 14:43:47 +01:00
7d2b1dc094 [Glitch] Improve report page structure
Port 34aa5c7cb2 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-19 14:37:12 +01:00
ab5ff638f2 Merge branch 'master' into glitch-soc/master
Conflicts:
- `config/locales/en.yml`
  No real conflict, upstream added a translatable string “too close” to
  one specific to glitch-soc
- `lib/mastodon/statuses_cli.rb`
  Fixes made upstream, while changed in glitch-soc to keep bookmarked statuses
- `package.json`
  No real conflict, additional dependency in glitch-soc
2019-12-19 13:52:54 +01:00
dc0750abc3 Fix manual scrolling issue on Firefox/Windows (#12648)
Fixes #12607

`will-change: transform` apparently makes manual scrolling impossible on
Firefox/Windows. While this should probably be considered a Firefox bug,
`will-change: transform` seem like a very aggressive performance hint that
may possibly make the browser consume more resources than needed, especially
in multiple-column mode.

This was originally added to improve scrolling performances on mobile, but
I think this isn't necessary anymore, because of the two following reasons:
- `contain: paint` (which is implied by `contain: strict`, which we apply
  whenever the browser supports grids) should have similar effects
- in single-column mode, the scrolling container is the root element, which
  I believe is optimized in at least Chromium

Keep in mind that I have not been able to make in-depth benchmarks, and
especially not been able to try on mobile, so performances should probably
be investigated further…
2019-12-19 12:47:19 +01:00
a90258dbe9 fix multiple space (#12655) 2019-12-19 07:39:08 +09:00
66ab1f83b0 Fix various issues caused by wrong unread key being updated 2019-12-17 15:55:10 +01:00
668f698077 Admin setting to disable default follows (#12566) 2019-12-16 23:55:50 +01:00
34aa5c7cb2 Improve report page structure (#12615)
* Move resolved button to the heading

This is one of the commits on improving overall reports page structure.
It changes where resolved button is located, moving it to the heading,
right next to the "Report #n" header, so-called "hot-place" to look at.

To accomplish this we have to declare one more content variable, change
admin dashboard template to respect it and CSS files for minor styling,
so buttons are inlined and centrally aligned according to the heading.

* Move actions buttons below the report table

I believe that actions to react on report should not be located at the
top of the page, instead they should be either after the table or
reporter's comment. This is just a logical sign that you should not
react to the report without reading all the details first.
2019-12-16 23:55:16 +01:00
09a72add0e Fix tooltip messages of multiple poll switcher are reversed (#12616) 2019-12-16 23:55:02 +01:00
6a1b4c3452 Fix edit filter link in filtered “Show why” dialog 2019-12-12 16:32:47 +01:00
be4849c083 Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- app/controllers/application_controller.rb
  Minor conflict due to glitch-soc's theming system
2019-12-12 15:40:06 +01:00
77e7b33dea Revert "Fix an eslint warning (#12426)" (#12596)
This reverts commit 054ef83fc5.
2019-12-10 19:39:02 +01:00
49027ee948 Fix erroneous inclusion of upstream code 2019-12-07 15:53:04 +01:00
d4c22d48df [Glitch] Highlight border when focusing poll-form footer
Port eb551c480d to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-07 15:48:26 +01:00
510e527663 [Glitch] Add basic support for group actors
Port f43f1e0184 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-07 15:48:26 +01:00
c6ba870f00 [Glitch] Fix poll options not being selectable via keyboard
Port c05ed8a625 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-07 15:48:26 +01:00
1e1293e3c8 [Glitch] Add follow_request notification type
Port 911cc14481 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-07 15:48:26 +01:00
176f1da267 [Glitch] upgrade/replace websocket.js to @gamestdio/websocket v2
Port f92ed32df4 to glitch-soc

Co-authored-by: hina <hina@hinaloe.net>
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-07 12:54:27 +01:00
abcba5c198 Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- package.json
  Not really a conflict, caused by an additional dependency in glitch-soc.
- yarn.lock
  Not really a conflict, caused by an additional dependency in glitch-soc.
2019-12-07 12:28:59 +01:00
eb551c480d Highlight border when focusing poll-form footer (#12544) 2019-12-05 00:51:07 +01:00
76adde4fe2 Fix media open hotkey (#12546) 2019-12-05 00:50:51 +01:00
f43f1e0184 Add basic support for group actors (#12071)
* Show badge on group actor in WebUI

* Do not notify in case of  by following group actor

* If you mention group actor, also mention group actor followers

* Relax characters that can be used in username (same as Application)

* Revert "Relax characters that can be used in username (same as Application)"

This reverts commit 7e10a137b878d0db1b5252c52106faef5e09ca4b.

* Delete display_name method
2019-12-04 20:36:33 +01:00
f92ed32df4 upgrade/replace websocket.js to @gamestdio/websocket v2 (#12543)
* Update stream.js

* Update package.json

* Update yarn.lock

Co-authored-by: hina <hina@hinaloe.net>
2019-12-04 20:45:49 +09:00
c05ed8a625 Fix poll options not being selectable via keyboard (#12538)
* Fix poll options not being selectable via keyboard

Fixes #12384

* Improve styling of poll option checkboxes/radio buttons

* Use more appropriate ARIA roles for poll options

* Allow switching between single and multiple choice from keyboard

* Coding style

* Avoid using .bind()
2019-12-03 19:53:16 +01:00
27d5d02925 Fix blocking/unblocking users from status dropdown menu (#12535)
Fixes #12511
2019-12-02 18:25:24 +01:00
f9b82fa660 Fix notifications label (#12517)
* Fix translations not being displayed

* ran `yarn manage:translations en`
2019-12-02 13:39:53 +01:00
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
fae7e0cace [Glitch] Fix conversations not having an unread indicator in web UI
Fix ed73376f1c to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-01 12:21:55 +01:00
2f8c4c588b [Glitch] Fix lost focus when modals open/close
Port 35b142a7ad to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-01 12:19:06 +01:00
99f1f48741 Merge branch 'master' into glitch-soc/merge-upstream 2019-12-01 12:12:42 +01:00
ed73376f1c Fix conversations not having an unread indicator in web UI (#12506) 2019-12-01 07:06:20 +01:00
35b142a7ad Fix lost focus when modals open/close (#12437)
* 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
2019-11-30 18:19:47 +01:00
b509b8812a [Glitch] Fix counter sizing
Port b532ead798 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-30 17:52:12 +01:00
776352d329 [Glitch] Add hotkey for opening media files
Port a690b3e470 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-30 17:52:12 +01:00
949b37faba [Glitch] Fix pending upload count not being decremented on error
Port 667708f5b0 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-30 17:37:16 +01:00
7ce7575549 [Glitch] Fix OCR with delete & redraft
Port e7a7f88df7 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-30 17:36:49 +01:00
2b7158427f Merge branch 'master' into glitch-soc/merge-upstream 2019-11-30 17:29:44 +01:00
b532ead798 Fix counter sizing (#12446)
Counter size is currently set to strict 33.3% width, but with it
counter may break in other languages than English. For example it is
already broken on Gargron's profile on mastodon.social using Russian
locale.

This commit changes "width" to "min-width", so counters still displayed
correctly, but if they need more width to fit text, they are now allowed
to take as many width as they need.
2019-11-29 17:03:38 +01:00
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
667708f5b0 Fix pending upload count not being decremented on error (#12499)
The arguments were passed to the wrong function… also, there is no
need to have a conditional decrementation: failure to upload means
we marked an upload as pending, in all cases.
2019-11-29 17:02:18 +01:00
93b8aec7b7 Link move target account 2019-11-27 17:37:01 +01:00
93cb162d4a Show acct of target account 2019-11-27 17:37:01 +01:00
014c2cad21 Add moved account warning 2019-11-27 17:37:01 +01:00
e7a7f88df7 Fix OCR with delete & redraft (#12465) 2019-11-25 01:42:51 +01:00
271b2e68f3 [Glitch] Fix blur behind closed registration message
Port SCSS changes from 42b3b019e0 to glitch flavour

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-23 19:08:46 +01:00
962f485423 [Glitch] Change media description label to be context-sensitive
Port e86234b1e9 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-11-23 19:07:23 +01:00