Commit graph

339 commits

Author SHA1 Message Date
Nolan Lawson 7188454790
perf: use more efficient CSS selectors for inline media (#1423) 2019-08-22 09:10:02 -07:00
Nolan Lawson 8c6a701d6f
fix: ensure "disable blurhash" setting is honored (#1422)
* fix: ensure "disable blurhash" setting is honored

fixes #1421

* remove play button for audio/video
2019-08-22 09:09:21 -07:00
Nolan Lawson dd625b80a0
fix: remove unused nCols computation (#1420) 2019-08-21 23:26:16 -07:00
sgenoud ada6b9f699 fix: Fix the blurhash alignment and general style (#1418)
* Fix the blurhash alignment issue

* Fix the video blurhash style
2019-08-21 22:31:14 -07:00
Nolan Lawson f80ca32478
perf: be more consistent about compose input scheduling (#1414) 2019-08-20 08:08:15 -07:00
Nolan Lawson cccbfd70da
perf: improve input responsiveness in compose input (#1413)
* perf: improve input responsiveness in compose input

* remove some unused code from autosize.js

* remove some more unused code
2019-08-19 21:37:11 -07:00
Nolan Lawson 4232da5e33 fix: fix lint 2019-08-19 20:23:58 -07:00
Nolan Lawson 5c9416b7fa
fix: fix blurhash for reblogged images (#1412)
fixes #1411
2019-08-19 20:23:05 -07:00
Sorin Davidoi acb134e518 fix(components/media): Handling of grouped videos (#1409)
* fix(components/media): Handling of grouped videos

Fixes #1404

* fix(status/media): Wrap in a div
2019-08-19 19:01:35 -07:00
Nolan Lawson c98b96aa44
fix: move worker-loader to webpack config (#1405)
This avoids ESLint complaining about the `worker-loader!` declaration
2019-08-18 15:15:20 -07:00
Nolan Lawson 009a511c80
perf: call revokeObjectURL() on stale blurhash blob URLs (#1403)
* perf: call revokeObjectURL() on stale blurhash blob URLs

fixes #1402

* add a test

* add comment
2019-08-18 15:15:13 -07:00
Sorin Davidoi c127d0a6bc feat(settings): Increase clickable area (#1401) 2019-08-18 12:29:36 -07:00
Sorin Davidoi 94cf7df954 fix(components/media): Autoplay and blurhash (#1400)
Fixes https://github.com/nolanlawson/pinafore/issues/1399.
2019-08-18 10:29:03 -07:00
Sorin Davidoi 823a7abebf fix(workers/blurhash): Don't use OffscreenCanvas (#1398) 2019-08-18 05:14:11 -07:00
Nolan Lawson 03dff1c595
fix: remove firefox UA sniff for img.decode (#1393)
fixes #1388
2019-08-17 15:35:43 -07:00
Nolan Lawson f25c93526c
fix: rename "hide all media by default" (#1394) 2019-08-17 15:35:38 -07:00
Nolan Lawson be3b5eb9d9
fix: reduce number of blurhash performance measures (#1395) 2019-08-17 15:35:31 -07:00
Nolan Lawson f8180e813f
fix: move blurhash worker operations to before status rendering (#1391)
* fix: move blurhash worker operations to before status rendering

* slight refactor

* avoid sending encoded data back and forth

* move cache outside worker
2019-08-17 14:36:13 -07:00
Nolan Lawson daa1978945
fix: tweak position of sensitive media button in blurhash mode (#1390) 2019-08-17 14:36:07 -07:00
Nolan Lawson aca1067568
fix: tweak colors for blurhash sensitive media button/text (#1389) 2019-08-17 14:33:57 -07:00
Sorin Davidoi 77bb784efd feat(media): Blurhash (#1381)
* chore(npm): Install blurhash

* feat(media): Show blurhash

* fix(media/blurhash): Better sensitive video handling

* feat(media): Preference for using blurhash

* chore(utils/blurhash): Add performance marks

* fix(utils/blurhash): Performance marks

* fix(utils/blurhash): Use correct dimension

* refactor(utils/blurhash): Use constant for number of pixels

* refactor(media): Simplify logic for displaying blurhash

* chore(tests/spec): Attempt to adjust sensitivity tests for blurhash

* chore(tests/spec): Update sensitivity tests for blurhash

* chore(tests/spec): Check for sensitive

* fix(media/blurhash): Handle videos

* fix: Video handling

* fix: Videos

* minor refactoring, fix Svelte warning

* fix: Large inline images and videos

* feat(settings): Rename blurhash setting

* refactor: Use toBlob, block media rendering until blurhash ready

* refactor: Move computations to Web Worker

* fix(workers/blurhash): More error handling

* feat(workers/blurhash): Use quick-lru for caching

* fix: Don't create Context2D needlessly

* fix(workers/blurhash): Increase cache size to 100

* fix(workers/blurhash): Don't resolve promise twice

* fix(utils/decode-image): Ignore data URLs

Throws exception which prevents the image from loading.
2019-08-17 10:54:45 -07:00
Nolan Lawson ea58242b85
fix: fix malformed URLs in statuses (#1385)
fixes #1384
2019-08-11 11:09:51 -07:00
Nolan Lawson c5e2eeee2d
perf: fix potential memory leak in IntersectionObserver (#1383) 2019-08-11 11:09:43 -07:00
Sorin Davidoi 66b247875f fix(service-worker): Open notifications if no status (#1378)
* fix(service-worker): Open notifications if no status

If the notifications couldn't be fetched fallback to displaying all notifications (aligned with how the Mastodon Web UI [handles it](https://github.com/tootsuite/mastodon/blob/master/app/javascript/mastodon/service_worker/web_push_notifications.js#L118)).

Might fix https://github.com/nolanlawson/pinafore/issues/1365.

* fix(service-worker): Use self
2019-08-07 20:38:38 -07:00
Nolan Lawson b2d7fad435
perf: only update draggable x/y state at end of drag (#1379)
* perf: only update draggable x/y state at end of drag

This is more intelligent and more performant than using requestIdleCallback willy-nilly. We can just update the store when the user is actually done dragging the button.

* remove console.log

* consistent syntax
2019-08-07 20:38:01 -07:00
Nolan Lawson a5f68aa45c
fix: make focal point button a bit larger (#1377)
* fix: make focal point button a bit larger

* make it a tad smaller
2019-08-07 09:11:52 -07:00
Nolan Lawson 87bab8662c
perf: use requestPostAnimationFrame to reduce layout thrashing (#1376) 2019-08-07 09:11:34 -07:00
Nolan Lawson 98e02cf650
perf: avoid measureText() where possible (#1375) 2019-08-07 09:11:15 -07:00
Nolan Lawson d58ab52a09
fix: improve focal points draggable style/perf (#1371)
* fix: improve focal points draggable style/perf

* remove unnecessary global

* fix all the things

* fix comment
2019-08-04 13:31:51 -07:00
Nolan Lawson 00945a3608
chore: update standard to v13 (#1370) 2019-08-03 13:49:37 -07:00
Nolan Lawson 000d725240
perf: do preconnect instead of prefetch for instance (#1368) 2019-08-03 12:02:06 -07:00
Nolan Lawson c1b8a99dbe
perf: put apple touch icon in service worker cache (#1367) 2019-08-01 18:12:22 -07:00
Nolan Lawson 59bdd0bb77
fix: large streaming gaps by refetching (#1362)
fixes #1356
2019-07-28 19:38:34 -07:00
Nolan Lawson 467eb85209
fix: simplify window.matchMedia (#1359)
There is really no reason to call window.matchMedia instead of just matchMedia.
2019-07-23 20:33:40 -07:00
Nolan Lawson 6c58052684
fix: remove unnecessary function cache (#1358)
This is just a bit of code cleanup; I think this cache logic is excessive
2019-07-23 20:33:31 -07:00
Nolan Lawson fbcac6d3e4
fix: fix Firefox img.decode bug (#1357)
* fix: fix Firefox img.decode bug

Fixes #1344

* fix error
2019-07-23 20:33:22 -07:00
Nolan Lawson 1a53ad3fe4
fix: fix bugs in streaming gap (#1355) 2019-07-22 07:43:36 -07:00
Nolan Lawson 734d1d7bbd
fix: fix useless nav-indicator-key attribute (#1353) 2019-07-21 19:31:19 -07:00
Nolan Lawson 7628eeed66
fix: fix grayscale wellness setting in dark mode (#1351) 2019-07-21 18:21:35 -07:00
Nolan Lawson 4d098d6b46
fix: fix streaming gap (#1349) 2019-07-21 15:31:26 -07:00
Nolan Lawson 6fafe19454
fix: fix html style of glitch-soc markdown content (#1350) 2019-07-21 15:31:17 -07:00
Louise de Beaufort 53f0fdf1a8 fix: Fix the style of blockquotes, ul and li in toots (#1348)
* Fix the style of blockquotes, ul and li in toots

* fixup based on review comments

fixes #1324
2019-07-21 15:31:05 -07:00
Nolan Lawson 2d8b61e589
fix: only apply custom scrollbars to root scroller (#1346) 2019-07-19 20:08:33 -07:00
Nolan Lawson fa57608056
fix: improve style of report dialog (#1345) 2019-07-19 20:08:26 -07:00
Nolan Lawson 95a68e1fe2
fix: delete-and-redraft preserves polls (#1343)
* fix: delete-and-redraft preserves polls

fixes #1342

* fix test
2019-07-19 20:08:17 -07:00
Louise de Beaufort e5df77b2a8 fix: Use unformatted status content in deleteAndRedraft (#1340)
* Use unformatted status content in deleteAndRedraft

* deleteStatus always returns an object even when the deletion fails

* throw error

fixes #1340
2019-07-19 08:09:52 -07:00
Nolan Lawson a6235ded8c
fix: fix autosizing of delete/redraft (#1338)
fixes #1334
2019-07-17 21:34:53 -07:00
Nolan Lawson a16bc30f21
fix: tweak spinner animation (#1337)
I think it looks better if it looks like the dots are growing or
shrinking rather than the whole thing spinning.
2019-07-17 21:34:45 -07:00
Nolan Lawson 015fe0080c
fix: limit search results from 40 to 5 (#1336)
40 is too much, also this aligns us with the Mastodon frontend UI.
2019-07-17 21:34:37 -07:00
Nolan Lawson 0e2479559b
fix: correctly parse hostname for instance block (#1328) 2019-07-08 20:51:17 -07:00
Nolan Lawson 6b40b2efbf
fix: add instance blocks (#1326)
* fix: add instance blocks

* block domains, not just instances
2019-07-08 19:26:44 -07:00
Nolan Lawson ade28cca5d
fix: remove useless noop methods (#1325) 2019-07-08 19:26:37 -07:00
Nolan Lawson 68343a7a09
fix: use pure CSS for focus effect (#1323)
* fix: use pure CSS for focus effect

fixes #1322

* apply elsewhere too

* fix comment
2019-07-08 09:42:45 -07:00
Nolan Lawson 8615c6e4fd
fix: add warnings when click delegates return non-booleans (#1319) 2019-07-07 18:26:06 -07:00
Nolan Lawson 7fd6cdc22c
fix: fix event propagation for click delegates (#1317)
fixes #1316
2019-07-07 17:32:50 -07:00
Nolan Lawson 8f6681ad7a
fix: clicking outside image closes modal (#1312)
fixes #862
2019-07-07 14:51:08 -07:00
Nolan Lawson 9fd5c8f6d2
fix: focal point should be only visible for images (#1311) 2019-07-07 13:24:49 -07:00
Nolan Lawson b26ec958a5
fix: fix return focus on keyboard-clicking media (#1306)
fixes #1305
2019-07-07 12:09:29 -07:00
Nolan Lawson 19566bda2e
fix: use focusin/focusout instead of custom events (#1308) 2019-07-07 11:43:35 -07:00
Nolan Lawson e5125a5a63
fix: fix poll color inside of notifications (#1304)
fixes #1271
2019-07-07 11:06:52 -07:00
Nolan Lawson 85b75900c1
feat: add ability to set focal points for media (#1303)
* feat: add ability to set focal points for media

fixes #739

* fix tests

* actually fix tests

* really really fix tests

* really really really fix tests pinkie swear
2019-07-07 00:14:19 -07:00
Nolan Lawson d31f2ce010
feat: add support for audio attachments (#1293)
This is a new thing in Mastodon v2.9. I kept the "camera" icon because I like it better than the paperclip, and I think it covers the 99% use case.
2019-06-23 09:41:31 -07:00
codl 9149cbe76a fix report dialog not taking comments #1282 (#1283) 2019-06-19 23:00:38 -07:00
Nolan Lawson 6980083ed0
fix: push subscriptions per instance (#1277)
* fix: push subscriptions per instance

fixes #1274

* fixup

* add notice about one push notification per instance at a time
2019-06-19 23:00:27 -07:00
Nolan Lawson c397753ddb
fix: Esc key dismisses tooltip (#1268)
fixes #1267
2019-06-03 19:31:00 -07:00
Nolan Lawson 5d0e95e759
perf: don't interate through all of localStorage in inline script (#1264) 2019-06-02 09:07:45 -07:00
Nolan Lawson 58a8772edc
perf: lazy-load the ComposeBox (#1262) 2019-06-01 17:01:50 -07:00
Nolan Lawson d75507bbce
fix: fix disableNotificationsBadge aria-label (#1260) 2019-06-01 15:51:53 -07:00
Nolan Lawson 604471a158
fix: fix grayscale in firefox (#1261) 2019-06-01 15:51:46 -07:00
Nolan Lawson f5c7bc790f
fix: fix compose toolbar on iphone 4 again (#1259) 2019-06-01 14:27:50 -07:00
Nolan Lawson 74230cfe8e
fix: fix service worker for real (#1258)
fixes #1243
2019-06-01 13:07:38 -07:00
Nolan Lawson a35f5ee2d9
feat: implement wellness settings (#1256)
* implement wellness settings

fixes #1192

Adds
- grayscale mode (as well as separate grayscale/dark grayscale
themes)
- disable follower/boost/fav counts (follower counts capped at 10)
- disable unread notification count (red dot)

* fix lint

* fix crawler
2019-06-01 13:07:31 -07:00
Nolan Lawson 27864fc47f
fix: Revert "fix: no need for double reload of SW in Chrome (#1251)" (#1257)
This reverts commit fa2eb8fe52.
2019-06-01 12:17:12 -07:00
Nolan Lawson fcf64c2169
fix: fix "Show more" button in Notifications timeline when filtered (#1255) 2019-05-29 18:48:59 -07:00
Nolan Lawson 45630c185f
feat: add option to disable infinite scroll (#1253)
* feat: add option to disable infinite scroll

fixes #391 and fixes #270. Also makes me less nervous about #1251 because now keyboard users can disable infinite load and easily access the "reload" button in the snackbar footer.

* fix test
2019-05-28 22:46:01 -07:00
Nolan Lawson 44a87dcd9a
fix: fix compose button toolbar style on small devices (#1254) 2019-05-28 22:24:22 -07:00
Nolan Lawson 8672ade314
fix: unescape html in card titles/descriptions (#1252) 2019-05-28 22:24:16 -07:00
Nolan Lawson fa2eb8fe52
fix: no need for double reload of SW in Chrome (#1251)
fixes #1243
2019-05-28 08:18:11 -07:00
Nolan Lawson 34e82cbaf2
fix: statuses in own thread should not have cursor:pointer (#1250) 2019-05-27 17:38:59 -07:00
Nolan Lawson f1857cb86e
fix: improve color contrast of dark themes (#1249) 2019-05-27 17:01:53 -07:00
Nolan Lawson 8c74d0c7c8
fix: add push notification badge (#1246) 2019-05-27 14:25:45 -07:00
Nolan Lawson 3a2c56f0fa
fix: various push notification fixes (#1245) 2019-05-27 14:01:02 -07:00
Nolan Lawson 164768e6c9
fix: fix bug when faving/boosting push notification (#1244) 2019-05-27 12:32:06 -07:00
Nolan Lawson 3a7d6d3552
fix: add <select> aria-label, remove unnecessary aria-labelledby (#1242) 2019-05-27 12:31:59 -07:00
Nolan Lawson 12179505e1
fix: improve UI/a11y of media upload (#1241) 2019-05-27 12:31:49 -07:00
Nolan Lawson 482ee3d3bb
fix: improve media upload a11y (#1240)
use ul/li instead of divs here
2019-05-27 12:31:42 -07:00
Nolan Lawson 37d3cac7d2
fix: add tests for polls, improve a11y of poll form (#1239) 2019-05-27 12:31:35 -07:00
Nolan Lawson b45868bbfd
fix: poll button label is backwards (#1238) 2019-05-27 01:05:55 -07:00
Nolan Lawson 6efc28aac8
fix: fix reduceMotion of svelte slide transition (#1237)
fixes #1236
2019-05-27 00:24:57 -07:00
Nolan Lawson 0878275ab9
feat: ability to create polls (#1235)
* feat: ability to create polls

fixes #1130

* fix adds and deletes

* fix tests

* fix tests again
2019-05-27 00:24:47 -07:00
Nolan Lawson 2c1de66592
feat: vote on polls (#1234)
more work on #1130
2019-05-26 20:45:42 -07:00
Nolan Lawson 45441d3a9e
fix: show poll results, time remaining, allow refresh (#1233)
more work towards #1130
2019-05-26 18:48:04 -07:00
Nolan Lawson dac4b493c8
fix: poll for updates to timeago displays (#1232)
* fix: poll for updates to timeago displays

* code cleanup

* avoid some recomputes

* avoid costly recomputes
2019-05-26 16:01:14 -07:00
Nolan Lawson bf640b9b0f
fix: fix unread notifications badge for filters (#1231)
fixes #1230
2019-05-26 16:01:06 -07:00
Nolan Lawson 8f477eeccb
feat: add poll notifications (#1229)
more work on #1130
2019-05-26 09:54:35 -07:00
Nolan Lawson 12c5b732ae
feat: add poll result push notifications (#1227)
fixes one of the sub-tasks in #1130.

I also went ahead and removed the reply feature, because I cannot get it to work in Android 6.0.1 and I can't find any documentation for it in W3C/WHATWG, so I'm not sure how it is supposed to work.
2019-05-25 15:20:09 -07:00
Nolan Lawson a17948cf99
feat: add home/notification filter settings (#1226)
Fixes #1223
Fixes #1224
2019-05-25 13:21:36 -07:00
Nolan Lawson 92bff6caaa
fix: minor tweaks to PushNotificationSettings (#1222) 2019-05-25 13:21:17 -07:00
Nolan Lawson 02689bec93
fix: change wording in show/hide sensitive media (#1221)
fixes #1215
2019-05-25 13:20:52 -07:00
Nolan Lawson c18168d913
fix: tweak poll results style and fix a11y (#1220) 2019-05-25 13:20:45 -07:00