discourse/app
David Taylor 1b9cf1b1c7
PERF: Update widget hooks to avoid global scroll-blocking events (#15116)
For widget event handlers, we register a single listener on the `<body>`, and then notify the relavent widget (if any) when the event fires.

`touchstart` and `touchmove` events are particularly performance sensitive because they block scrolling on mobile. Therefore we want to avoid registering global non-passive listeners for these events.

This commit updates the WidgetTouchStartHook and WidgetDragHook implementations to automatically register listeners on the specific widget DOM elements when required.

This commit removes the last global scroll-blocking event handler from Discourse core. That means that mobile scrolling is now completely decoupled from our JS app. Even if the JS app is completely blocked (e.g. during rendering), scrolling will now continue to work. This should make things feel a lot smoother, especially on lower performance devices.
2021-11-28 10:47:44 +00:00
..
assets PERF: Update widget hooks to avoid global scroll-blocking events (#15116) 2021-11-28 10:47:44 +00:00
controllers FEATURE: show recent searches in quick search panel (#15024) 2021-11-25 15:44:15 -05:00
helpers DEV: Allow actions to change the manifest endpoint (#14522) 2021-10-06 15:41:52 -05:00
jobs FIX: Delete unconfirmed AND expired email tokens only (#15089) 2021-11-25 10:34:30 +02:00
mailers DEV: Hash tokens stored from email_tokens (#14493) 2021-11-25 09:34:39 +02:00
models DEV: Don't create unnecessary scope methods (#15104) 2021-11-26 16:34:07 +01:00
serializers FEATURE: show recent searches in quick search panel (#15024) 2021-11-25 15:44:15 -05:00
services FIX: Use CDN URL for internal onebox avatars (#15077) 2021-11-25 12:07:34 +00:00
views DEV: Hash tokens stored from email_tokens (#14493) 2021-11-25 09:34:39 +02:00