Commit Graph

620 Commits

Author SHA1 Message Date
Nolan Lawson 58af4d888e
feat: clicking avatar opens media modal (#1485)
fixes #1464
2019-09-14 22:26:29 -07:00
Nolan Lawson dbb746ff34
fix: media modal uses full height on mobile (#1481)
fixes #1465
2019-09-13 22:11:22 -07:00
Nolan Lawson 2112361fef
fix: fix case sensitivity in hashtag links (#1478)
fixes #1477
2019-09-13 19:04:22 -07:00
Nolan Lawson 6d3a0b5fee
fix: allow audio uploads on iOS Safari (#1472)
fixes #1461
2019-09-08 11:07:20 -07:00
Nolan Lawson 72e187a0fa
perf: disable database cleanups when page is not active (#1471)
* perf: disable database cleanups when page is not active

* fix test
2019-09-07 21:05:36 -07:00
Nolan Lawson d71d6b49ef
fix: run idb cleanups in requestIdleCallback (#1470) 2019-09-07 20:27:54 -07:00
Nolan Lawson 26a036259e
chore: update standard (#1466) 2019-09-07 20:27:47 -07:00
Nolan Lawson df0afa12ed
perf: periodically clean up old compose drafts (#1469)
fixes #1419
2019-09-07 17:49:58 -07:00
Nolan Lawson a0ad82d850
fix: Revert "fix: h2 in media edit dialog should be h1 (#1453)" (#1455)
This reverts commit 450785ea81.
2019-08-29 20:16:15 -07:00
Nolan Lawson 9787fe9f05
fix: length indicator aria-label should not be negative (#1454) 2019-08-29 20:13:25 -07:00
Nolan Lawson 450785ea81
fix: h2 in media edit dialog should be h1 (#1453)
The dialog is in its own document, so the heading level should start
back at h1.
2019-08-29 20:13:20 -07:00
Nolan Lawson de27d0e2bf
perf: don't fetch custom emoji on every page load (#1451)
fixes #812

follow-up to #1448 and #1450
2019-08-29 19:15:30 -07:00
Nolan Lawson ebd10a43d2
perf: fetch lists from database on page load (#1450)
* perf: fetch lists from database on page load

follow-up to #1448, I would like for there not to be a flash on the /community page where the lists suddenly load in, but I would still like to avoid the network request if possible. So when the page first loads, we can load the lists from the database and only fetch them from the network if not in the cache.

* add comment
2019-08-29 18:41:36 -07:00
Nolan Lawson 56f266cb93
perf: terminate tesseract worker after a delay (#1449)
fixes #1447
2019-08-29 08:51:41 -07:00
Sorin Davidoi b01191037e refactor(store/observers/instance): Don't fetch lists eagerly (#1448)
They are already fetched on-demand when the community column is loaded.
2019-08-29 07:55:40 -07:00
Sorin Davidoi 7d8f19a672 fix(actions/instances): Clear data when token revoked (#1446) 2019-08-29 07:55:12 -07:00
Nolan Lawson 7d4cb1914a
fix: make the OCR progress bar accessible (#1445)
* fix: make the OCR progress bar accessible

* fixup
2019-08-28 08:13:24 -07:00
Nolan Lawson c8738f17b0
fix: add progress bar for OCR (#1444) 2019-08-27 23:23:35 -07:00
Nolan Lawson fc0f5df6c6
fix: length gauge should respect reduceMotion (#1440) 2019-08-27 22:58:25 -07:00
Nolan Lawson f6981cff01
fix: improve style of focal/alt editor on mobile (#1439)
fixes #1438
2019-08-27 22:58:17 -07:00
Nolan Lawson b46f76fbf8
fix: use url over id as media upload cache key (#1437) 2019-08-25 22:24:37 -07:00
Nolan Lawson e2c137b2ef
fix: prefer local file URLs for OCR (#1436) 2019-08-25 21:48:59 -07:00
Nolan Lawson cb12e05584
fix: tweak style of focal point coordinate inputs (#1435) 2019-08-25 18:33:50 -07:00
Nolan Lawson ca9a32d303
feat: add OCR for image descriptions using tesseract.js (#1433)
* feat: add OCR for image descriptions using tesseract.js

* tweak style of alt editor

* remove unnecessary files
2019-08-25 18:33:44 -07:00
Nolan Lawson bd2a7abe2a
fix: tweak backdrop filter in focal point editor (#1434) 2019-08-25 17:22:04 -07:00
Nolan Lawson e79fc8f3bd
fix: fix cursor when grabbing in draggable UI (#1432) 2019-08-24 21:23:52 -07:00
Nolan Lawson 59d26f1a09
feat: add length gauge for media alt text editor (#1431)
* feat: add length gauge for media alt text editor

* fix test
2019-08-24 21:23:43 -07:00
Nolan Lawson 7f9195c2af
feat: combine alt/focal point into single "media edit" dialog (#1430)
* feat: combine alt/focal point into single "media edit" dialog

* resize text automatically
2019-08-24 19:28:12 -07:00
Nolan Lawson 7b32c71c93
fix: reset websocket on online/offline/active events (#1429)
* fix: reset websocket on online/offline/active events

* minor fixup

* add comments
2019-08-24 13:33:57 -07:00
Nolan Lawson 88ab0b929c
fix: improve style of "large inline" media (#1428) 2019-08-24 10:43:50 -07:00
Sorin Davidoi da668c5330 fix(components/media): Handle autoplay with blurhash (#1425)
Closes https://github.com/nolanlawson/pinafore/issues/1424.
2019-08-23 07:13:25 -07:00
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
sgenoud af955492e8 feat: Add poll results to a status (#1219) 2019-05-25 08:36:44 -07:00
Nolan Lawson 692e8b57c3
fix: separate "inline theme" from "default theme" (#1216) 2019-05-25 08:19:11 -07:00
Cătălin Mariș cdade05315 fix: use only one 180x180px touch icon (#1213)
* Include just one 180x180px touch icon`.

  Over time as Apple released different size displays for their
  devices, the requirements¹ for the size of the touch icon have
  changed quite a bit:

   * 57×57px – iPhone with @1x display and iPod Touch
   * 72×72px – iPad and iPad mini with @1x display running iOS ≤ 6
   * 76×76px – iPad and iPad mini with @1x display running iOS ≥ 7
   * 114×114px – iPhone with @2x display running iOS ≤ 6
   * 120×120px – iPhone with @2x and @3x display running iOS ≥ 7
   * 144×144px – iPad and iPad mini with @2x display running iOS ≤ 6
   * 152×152px – iPad and iPad mini with @2x display running iOS 7
   * 180×180px – iPad and iPad mini with @2x display running iOS 8+

  However, most iOS users will be on the latest 2 versions² of iOS
  and using newer devices, so nowadays, one 180x180px touch icon is
  enough.

  Also, if needed, the icon will be automatically³ downscaled by
  Safari, and the result of the scaling is generally ok.

* Remove unneeded `sizes` attribute.

  When using only one touch icon there is no need to use the `sizes`
  attribute.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

¹ https://github.com/h5bp/html5-boilerplate/pull/1599#issuecomment-56384135
² https://developer.apple.com/support/app-store/
³ https://realfavicongenerator.net/blog/how-ios-scales-the-apple-touch-icon/

See also: https://mathiasbynens.be/notes/touch-icons
2019-05-13 21:45:38 -07:00
Nolan Lawson 9e6bc60abe
fix: improve focus style on dialog list item (#1208)
fixes #1201
2019-05-11 10:01:14 -07:00
Nolan Lawson 5f01a1ba96
fix: don't autosuggest when text ends with punctuation (#1207) 2019-05-11 09:18:36 -07:00
Nolan Lawson 89a56678e1
fix: use fibonacci instead of exponential when streaming (#1205)
I dunno if this will improve #14, but it at least aligns us with Mastodon's behavior.
2019-05-10 21:05:26 -07:00
Nolan Lawson b7b9758445
fix: fix some dialog state issues (#1203)
* fix: fix some dialog state issues

fixes #1202

* fix console logs
2019-05-09 20:34:45 -07:00
sgenoud db0f5bf237 fix: Fix ios design issues (#1199)
* Take into account the layout weirdness on iPhones

This makes the menu bar full screen in landscape mode and allow the
snackbar to have enough bottom padding

* Improve the icon for PWA

fixes #1198
2019-05-09 07:34:28 -07:00
Nolan Lawson 4432d49467
fix: fix style of snackbar on mobile (#1197) 2019-05-08 23:35:33 -07:00
Nolan Lawson 43baaf36ae
fix: close IDB connections when page is frozen (#1196)
OK let's try this
2019-05-08 20:53:33 -07:00
Nolan Lawson 70da9a92a6
fix: close/open websocket on freeze/resume events (#1195)
* fix: close/open websocket on freeze/resume events

attempt to address #14

* fix unit tests
2019-05-08 19:58:32 -07:00
Nolan Lawson 0887196db4
feat: add snackbar alert with refresh button (#1193)
* feat: add snackbar alert with refresh button

fixes #77

* fixup

* change refresh to reload
2019-05-08 07:52:12 -07:00
Nolan Lawson c56d561e9d
fix: fix aria-hidden on toast (#1194)
* fix: fix aria-hidden on toast

* fixup
2019-05-08 07:51:53 -07:00
Nolan Lawson 2425ca8f72
fix: make sure sapper crawls nofications/mentions (#1191) 2019-05-06 21:17:46 -07:00
Nolan Lawson de220e7262
fix: throttle XHRs from autosuggest (#1190)
* fix: throttle XHRs from autosuggest

* throttle and abort properly

* add comment

* fix xhr bug
2019-05-06 20:29:43 -07:00
Nolan Lawson cef76e6bba
fix: fix flash of searched content in autosuggest (#1188) 2019-05-06 08:34:20 -07:00
Nolan Lawson 75c3060912
fix: fix autosuggested accounts order (#1187)
new order is local first, followed by remote, and each sorted alphabetically
2019-05-06 08:34:12 -07:00
Nolan Lawson 2abe15cc6f
fix: fix autosuggest width on mobile (#1186)
fixes #1185
2019-05-06 08:34:03 -07:00
Nolan Lawson d83062126a
fix: use inputmode=url for instance input (#1184) 2019-05-06 08:33:53 -07:00
Nolan Lawson 8d0db2c97c
fix: make autosuggestion accessible (#1183)
* fix: make autosuggestion accessible

fixes #129

* remove tabindexes, fix aria-hidden
2019-05-05 22:08:54 -07:00
Nolan Lawson 78715bc098
fix: do remote search when autosuggesting accounts (#1182)
* fix: do remote search when autosuggesting accounts

fixes #1005

* fix emoji search
2019-05-05 19:16:02 -07:00
Nolan Lawson de9faf4678
fix: redesign tabs slightly (#1178) 2019-05-05 12:30:08 -07:00
Nolan Lawson 23bdc6c87e
feat: implement notification filters (all vs mentions) (#1177)
fixes #1176
2019-05-04 17:58:44 -07:00
Nolan Lawson ff1e9e2c41
fix: add tooltip info on what an instance is (#1175) 2019-05-04 14:16:15 -07:00
Nolan Lawson b13f0afc37
fix: fix autofocus in emoji dialog search (#1173) 2019-05-04 12:20:45 -07:00
Nolan Lawson af9cad89d9
chore: update remount to v0.11.0 (#1171) 2019-05-01 18:57:41 -07:00
Nolan Lawson ecaeec226c
feat: add option to disable open graph cards (#1161)
fixes #1155
2019-04-20 09:12:42 -07:00
Nolan Lawson 1712081f0b
fix: fix profile clicks from compose dialog (#1160)
* fix: don't allow profile clicks from compose dialog

fixes #1159

* make the links work correctly in the modal

* fix tests
2019-04-20 09:12:30 -07:00
sgenoud 2ce2453d8f fix: Unstretch the card image (#1157)
Fix #1156
2019-04-20 07:52:14 -07:00
Nolan Lawson 0649eee366
fix: fix dialogs within dialogs not opening (#1154)
* fix: fix dialogs within dialogs not opening

fixes #1153

* remove console logs
2019-04-14 19:47:30 -07:00
Nolan Lawson ddd95aad27
fix: fix modal dialog width (#1152)
fixes #1151
2019-04-14 14:09:10 -07:00
Nolan Lawson b3098c8c5a fix: tweaks to conversations (direct) UI (#1137)
- make the url `/direct`
- call it "Direct messages"
- fix sapper export
- retain DM background color
- add test
2019-04-13 15:30:49 -07:00
Steve Genoud 622dbde258 feat: Adds a basic conversations timeline (#1137)
fixes #639
2019-04-13 15:30:49 -07:00
sgenoud 79184570b1 fix: Manage the width to take scrollbars into account (#1138)
* Manage the width to take scrollbars into account

* Additional modal layout styles changes
2019-04-13 11:02:25 -07:00
sgenoud 5642b10c72 fix: Add hostname when description is missing (#1145) 2019-04-10 07:57:37 -07:00
sgenoud 49b0633a8d feat: Add a shortcut to opening the cards link (#1134)
* Add a shortcut to opening the cards link

* minor aesthetic tweaks
2019-04-10 07:56:24 -07:00
sgenoud e202dd3444 feat: Add a setting to reload the page (#1132)
* Add reload setting

The iOS PWA version does not allow you to reload the page - even with killing
the app. This is useful for reloading new versions of the app (as well as
solving bad transient state issues).

* make href use #
2019-04-08 19:23:16 -07:00
sgenoud 1dec3b55f9 fix: Remove placeholder for cards without images (#1135)
* Remove placeholder for cards without images

* remove no longer needed svg
2019-04-08 19:14:18 -07:00
sgenoud f6c8eb4055 fix: Disable custom scrollbars by default on iOS (#1133) 2019-04-05 09:27:44 -07:00
Nolan Lawson 8549c3a79a
fix: add placeholder icon for opengraph cards without images (#1131) 2019-04-01 20:48:41 -07:00
Nolan Lawson 44c45d0b64
fix: slight tweaks to opengraph card (#1128) 2019-03-31 14:11:24 -07:00
sgenoud 6bae770bf5 feat: Add support for Open Graph cards (#1121)
* Add support for Open Graph cards

* use <strong> and aria-hidden on image to improve a11y
2019-03-31 12:04:24 -07:00
sgenoud 8d012a96f7 fix: Enable PWA support for iOS devices (#1120)
* Enable PWA support for iOS devices

* add sniff for ios <12.2
2019-03-31 10:56:21 -07:00
Nolan Lawson f758e12b24
fix: replace indexWhere with findIndex (#1125) 2019-03-31 09:21:57 -07:00
Nolan Lawson 6744de59f8
feat: add account page filters (#1124)
* start on account page filters

fixes #1021

* making progress

* more progress, just need style now

* fix lint

* fix style and add test
2019-03-30 21:48:49 -07:00
Cătălin Mariș ba0ea7ab83 fix: remove no longer needed `initial-scale=1` (#1119)
`initial-scale=1` was a workaround for a orientation change bug,
that was only needed for the no longer relevant Safari for iOS < 9.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ref:

  * https://www.quirksmode.org/blog/archives/2013/10/more_about_scal.html
  * https://twitter.com/ppk/status/829329567219343360
2019-03-26 18:40:11 -07:00
Nolan Lawson 8fc8108454
fix: back button dismisses the modal dialog (#826)
* fix: back button dismisses the modal dialog

fixes #60

* try to manage nested modals

* seems working now

* fix modal timing issue

* fix test flakiness

* improve test flakiness again

* fix muting timing issue

* Revert "fix muting timing issue"

* remove setTimeout from MediaDialog

* refactor
2019-03-24 15:08:34 -07:00
Nolan Lawson 059b455451
fix: fix and test shortcut keys in modals (#1115) 2019-03-23 18:16:06 -07:00
Nolan Lawson cf104163fe
fix: fix removing emoji from display names (#1114) 2019-03-22 15:55:33 -07:00
Nolan Lawson 47255e818c
fix: fix aria-labels for pleroma (#1113) 2019-03-22 15:55:28 -07:00
Nolan Lawson c896836ce8
fix: fix spaces in status aria-labels (#1111)
fixes #1108
2019-03-21 14:38:37 -07:00
Nolan Lawson 2e8e0a5f19
fix: always show the home compose box (#1109)
* fix: always show the home compose box

fixes #1076

* fix loading visibility
2019-03-20 20:19:18 -07:00
Nolan Lawson f0af8178af
feat: implement "." keyboard shortcut (#1105)
fixes #1052
2019-03-18 09:09:24 -07:00
Nolan Lawson 90aab7f6af
fix: fix background on dark mode emoji (#1102)
fixes #1101
2019-03-17 12:37:26 -07:00
Nolan Lawson 8b0dd86605
fix: fix media button focus outline (#1103)
fixes #1037
2019-03-17 12:37:19 -07:00
jeroenpraat 5012a21bcd feat: Plus theme with Mastodon standard web-app colors (called mastodon) (#1090)
* +mastodon theme

* +mastodon theme
2019-03-09 12:29:57 -08:00
Nolan Lawson 9012b6ce5c
fix: when idb is blocked, use console.error (#1081)
this allows the error to actually be logged in production for better debugging
2019-03-05 20:25:38 -08:00
Nolan Lawson c0918ccdc3
fix: fix pleroma snowflake IDs for real (#1084)
fixes #1082
2019-03-05 20:25:10 -08:00
Will Pearson 8665a18ac0 fix: Fix reversed base62 encoding (#1083) 2019-03-05 20:03:55 -08:00
Nolan Lawson f179a63255
fix: add a privacy policy (#1078)
fixes #1077
2019-03-04 23:18:21 -08:00
Nolan Lawson 5cde48c2c5
test: add IndexedDB tests (#1075)
* test: add IndexedDB tests

Adds unit tests using fake-indexeddb.

* remove wtfnode dep
2019-03-03 18:34:10 -08:00
Nolan Lawson 93a3e85994
fix: use correct sorting for snowflake IDs (#1074)
* fix: use correct sorting for snowflake IDs

fixes #1071

* refactor
2019-03-03 17:21:22 -08:00
Nolan Lawson 7e5f58b969
refactor: use timeline item summaries instead of ids (#1072)
As described in https://github.com/nolanlawson/pinafore/issues/369#issuecomment-467211908 this is the first step toward fixing #369
2019-03-03 13:24:55 -08:00
Nolan Lawson b14f818e81
perf: build url regex in advance (#1069)
* perf: build url regex in advance

* update comment

* better regex stringification
2019-03-02 22:02:59 -08:00
Nolan Lawson 1f5606c65e
perf: reduce size of ShortcutHelpInfo.html (#1068) 2019-03-02 20:06:56 -08:00
Nolan Lawson 880bc7a38a
perf: use a separate icons.svg file (#1067)
* perf: use a separate icons.svg file

This splits icons into inline and non-inline. The inline ones are high
priority; the rest go in an icons.svg file.

* create SvgIcon.html

* determine inlined svgs at build time
2019-03-02 19:02:06 -08:00
Nolan Lawson c98619adac
fix: fix closing of account options dialog (#1060)
* fix: fix closing of account options dialog

fixes #1049

* fix lint
2019-02-28 20:49:09 -08:00
Nolan Lawson 63003c3763
fix: fix aria-posinset should be 1-based (#1055)
* fix: fix aria-posinset should be 1-based

fixes #1053

* second attempt to fix tests

* try to fix test

*  fixup

* lint fix

* fix more tests

* simplify test math
2019-02-28 08:56:25 -08:00
Nolan Lawson b0aa86ef44
fix: fix undefined error in media dialog scroll (#1048) 2019-02-26 22:18:24 -08:00
Nolan Lawson 6708b06a59
chore(package): update dependencies (#1046) 2019-02-23 23:34:48 -08:00
Nolan Lawson df8c49cb57
fix: fix /undefined request for gifv (#1044)
* fix: fix /undefined request for gifv

fixes #1042 for real this time

* use poster instead
2019-02-23 19:26:06 -08:00
Nolan Lawson e3888586bb
fix: fix /undefined request for video poster (#1043)
fixes #1042
2019-02-23 18:42:19 -08:00
Nolan Lawson fabf9399f2
fix: use static server for `node server.js` (#1041)
* fix: use static server for `node server.js`

Aligns the Node server with the Zeit server. Fixes #1019

* fix test
2019-02-23 16:09:48 -08:00
Nolan Lawson 2b491ddb10
fix: fix pinned toots not in IDB (#1040)
fixes #660
2019-02-23 15:18:48 -08:00
Nolan Lawson 8c37a7cc02
refactor: refactor parent focus styles (#1036) 2019-02-23 12:50:56 -08:00
Nolan Lawson 56162c7a69
fix: fix timeline jumping on focus (#1039)
This should fix #840. I can't see any reason why we would want it to scroll when we're focusing these things.
2019-02-23 12:32:18 -08:00
Nolan Lawson 547ee14f88
refactor: use ids instead of attrs for delegate/shortcut/focus (#1035)
* refactor: use ids instead of attrs for delegate/shortcut/focus

fixes #1034

* console log on error

* fix test
2019-02-23 12:32:00 -08:00
Nolan Lawson c9ca605cfe
fix: fix keyboard shortcuts for pinned toots (#1033)
* fix: fix keyboard shortcuts for pinned toots

fixes #908

* fix test
2019-02-23 09:47:36 -08:00
Nolan Lawson eeba66567c
feat: add "accout has moved" banner (#1032)
fixes #472
2019-02-22 20:35:19 -08:00
Nolan Lawson 11e918dd50
fix: fix keyboard shortcuts on thread (#1031)
* fix: fix keyboard shortcuts on thread

fixes #1029

* fix test
2019-02-22 20:35:13 -08:00
Nolan Lawson e16c312788
fix: use focus ring rather than background for status/notifications (#1030)
I don't like clicking on a status, clicking back, and suddenly it has a
different background. The focus ring is less distracting. Unfortunately
it doesn't look right on the article element itself, so we have to apply
the style to its parent, but that's not too hard.
2019-02-22 20:35:04 -08:00
Nolan Lawson 42e466f3c2
fix: j/k shortcuts correctly set active element (#1028)
fixes #1018
2019-02-21 23:50:27 -08:00
Nolan Lawson 58844052c9
fix: update url regex to match latest mastodon (#1026)
also make all the regexes use the thunk pattern consistently
2019-02-19 23:34:06 -08:00
greenkeeper[bot] 8049977563 chore: Update file-drop-element to the latest version 🚀 (#1017)
* fix(package): update file-drop-element to version 0.2.0

* chore(package): update lockfile yarn.lock

* fix: update for file drop 0.2.0
2019-02-19 22:24:03 -08:00
Nolan Lawson 44e3ea575e
fix: remove __fakeFileInput, clean up on destroy (#1025) 2019-02-19 21:50:41 -08:00
Nolan Lawson a63e85bf30
feat: report an account or toots (#1016)
fixes #736
2019-02-18 19:55:44 -08:00
Nolan Lawson d665134d66
refactor: refactor dialogs (#1015) 2019-02-18 16:27:59 -08:00
Nolan Lawson bfdb977f22
fix: refactor NavItem, fix icon badge bug (#1014) 2019-02-18 16:27:52 -08:00
Nolan Lawson 7a152fbdac
feat: allow muting notifications when muting (#1013)
fixes #738
2019-02-18 15:43:41 -08:00
Nolan Lawson cd5b6f8e81
perf: use lite web animations polyfill (#1011) 2019-02-18 11:47:02 -08:00
Nolan Lawson 4387c17cbd
fix: add federated/favorites to crawled pages (#1006)
another thing I missed in #1000 and #1002
2019-02-16 12:33:22 -08:00
Nolan Lawson 7f1ba74c37
fix: fix missing export pages in node v8 (#1002)
For reasons that are mysterious to me, #1000 works in Node v10 but not v8. And Zeit runs v8. Moving the hidden links to a different page fixes it. ¯\_(ツ)_/¯
2019-02-16 11:33:05 -08:00
Nolan Lawson 2debddaaf6
fix: add some pages that "sapper export" missed (#1000)
Unfortunately it looks like `sapper export` works by crawling the
non-logged-in site, which means that any pages that are inaccessible
when you're not logged in don't get generated, including "pinned,"
"muted," "blocked," "requests," and "share."

Normally this isn't a problem, but it is in browsers that don't
have Service Worker; you get a 404 when you try to refresh those pages.

My fix is to just add a hidden div that links to these pages. It's not
pretty, but it works.
2019-02-16 00:48:45 -08:00
Nolan Lawson 7887d2c848
fix: remove deferred polyfill caching (#999)
As of #998 we can no longer rely on JS files containing , let alone . This was a nice idea, but it's just not maintainable anymore nor does it provide a huge benefit.
2019-02-15 20:31:22 -08:00
Nolan Lawson 59544d2cf4
fix: improve a11y, move preview box inside label (#997) 2019-02-15 19:03:24 -08:00
Nolan Lawson 25aea9f30a
fix: improve active state of navbar (#996) 2019-02-15 19:03:18 -08:00
Nolan Lawson 425d4c74aa
fix: use "public" for cache-control (#993)
another attempt to address #985
2019-02-14 22:54:18 -08:00
Nolan Lawson 75db2c0dac
fix: fix broken CSP in dev mode (#992)
It seems #988 occasionally breaks dev mode due to missing SW script. This fixes that.
2019-02-14 21:26:41 -08:00
Nolan Lawson 1b9d3b1cd0
feat: implement Web Share API (#991)
fixes #990
2019-02-14 21:26:28 -08:00
Nolan Lawson a97600d4a2
fix: set max-age to 3600 for html (#989)
another attempt to address #985
2019-02-14 21:26:20 -08:00
Nolan Lawson d947f819ab
fix: increase cache, use csp checksums over nonce (#988)
attempt to address #985
2019-02-14 19:39:24 -08:00
Nolan Lawson 752715becb
fix: tweak primary button border color (#987) 2019-02-14 19:38:54 -08:00
Nolan Lawson 623c2c79cb
fix: fix style of compose box in reply (#983)
Fixes #982
2019-02-14 08:46:43 -08:00
Nolan Lawson df09b0a995
perf: prefetch all internal links (#981) 2019-02-13 18:40:02 -08:00
Nolan Lawson 58d1f62b2b
feat: implement web share target (#980)
fixes #974
2019-02-13 18:38:44 -08:00
Nolan Lawson df6b75e994
fix: fix slim size compose dialog (#979)
fixes #106
2019-02-13 18:38:34 -08:00
Nolan Lawson 4074f09f65
fix: fix default contrast ratio for button (#978)
this gets us up to 100% accessibility score on lighthouse
2019-02-13 18:38:19 -08:00
Nolan Lawson 3aee6fb050
fix: only call Royal the default theme if it is (#970) 2019-02-11 22:36:31 -08:00
Nolan Lawson 652ffffec4
fix: fix SettingsListItem missing className dev warning (#968) 2019-02-11 21:04:08 -08:00
Nolan Lawson 4bf3c2fd28
fix: don't show theme picker if not logged in (#967)
Also tweak some of the styles and layout in the theme picker itself
2019-02-11 21:04:00 -08:00
Nolan Lawson 8179c1b53f
fix: set dark theme based on prefers-color-scheme (#966)
* fix: set dark theme based on prefers-color-scheme

fixes #728

* add an explicit banner fill color
2019-02-11 21:03:51 -08:00
Nolan Lawson de4016029f
fix: fix legibility of settings text in dark themes (#965) 2019-02-11 19:49:18 -08:00
Nolan Lawson 795999e5ac
perf: use keyed each for media (#963) 2019-02-10 13:27:29 -08:00
Nolan Lawson fdcaa864af
fix: allow right-click to save image (#962)
fixes #961
2019-02-10 13:03:24 -08:00
Nolan Lawson 37c85ec7e2
fix: disable smooth scroll for users who prefer reduced motion (#958) 2019-02-09 19:52:40 -08:00
Nolan Lawson 56f5a45221
fix: fix aria-hidden on hidden icons (#957) 2019-02-09 19:05:59 -08:00
Nolan Lawson 2884955d67
fix: carousel should use ul/li for a11y (#956) 2019-02-09 18:06:58 -08:00
Nolan Lawson 9cb15a3396
fix: fix hand cursor on non-tappable status (#955)
fixes #951
2019-02-09 17:31:24 -08:00
Nolan Lawson 135fb24873
fix indicator button size on small screens (#954) 2019-02-09 15:25:30 -08:00
Nolan Lawson e82066dcc2
fix: fix scroll-snap in firefox when scrolling manually (#953) 2019-02-09 14:31:49 -08:00
Nolan Lawson 73eb9fba2c
fix: fix carousel and scrollbars for edge browser (#952) 2019-02-09 12:01:29 -08:00
Nolan Lawson 180055da70
fix: fix items appearing over nav (#949)
fixes #937
2019-02-06 22:24:03 -08:00
Nolan Lawson 2a96e0eeda
fix: minor fixups for accessibility and responsive design (#948)
* fix: minor fixups for accessibility and responsive design

* fix lint
2019-02-06 22:23:54 -08:00
Nolan Lawson 157f5db690
fix: fix zoomable videos (#947)
fixes #946
2019-02-06 21:00:30 -08:00
Isabelle Knott 503378a400 feat: Add 'switch to instance' buttons next to instances in instance list. (#945) 2019-02-06 20:56:30 -08:00
Nolan Lawson 6e0f2ef6bb
fix: do not add duplicates to threads (#944)
attempt to fix #943
2019-02-06 11:36:46 -08:00
Nolan Lawson 10b14abcdb
fix: tweak carousel to show button change sooner (#940) 2019-02-05 09:54:38 -08:00
Nolan Lawson e17d3974d5
fix: add label to dummy icon to prevent svelte warning (#936) 2019-02-03 14:47:14 -08:00
Nolan Lawson f5be28d99a
fix: use intrinsicsize for images/videos (#935)
* fix: use intrinsicsize for images/videos

* add comment
2019-02-03 14:01:45 -08:00
Nolan Lawson 6d2b3ec072
feat: add pinch-zoom to media dialog (#933)
* feat: add pinch-zoom to media dialog

* fix zoom buttons
2019-02-03 12:33:15 -08:00
Nolan Lawson 4c430bd1c9
fix: remove dead code from MediaDialog (#934) 2019-02-03 11:56:27 -08:00
Ivan Kupalov 437236bf3c feat: Add shortcuts to the media dialog (#930)
* Add shortcuts to the media dialog

* fix: unify logic for next/prev buttons and keyboard shortcuts

* fix: add info about left/right shortcuts
2019-02-03 11:56:07 -08:00
Nolan Lawson 84e9bfc8e5
fix: fix rounding of scroll math on Safari (#932) 2019-02-03 11:10:58 -08:00
Nolan Lawson 9231e66612
fix: fix pressed color on media dialog buttons (#931) 2019-02-03 11:10:52 -08:00
Nolan Lawson 9d594f0bac
feat: add carousel for media modal (#928) 2019-02-02 23:03:40 -08:00
Nolan Lawson 648d9a3cf6
fix: tweak underlining of links (#920) 2019-01-26 13:50:45 -08:00
Nolan Lawson 109022fab9
feat: add option to underline links in toot text (#919)
* feat: add option to underline links in toot text

* change text
2019-01-26 12:58:11 -08:00
Nolan Lawson 0b1efab0c1
fix: fix "copy link" on iOS (#918)
* fix: fix "copy link" on iOS

fixes #912

* fix lint
2019-01-26 12:05:14 -08:00
Stephane Zermatten 2656e11bb0 fix: Follow-up for pull request #870 (#910)
* Cache main-nav in scrollIntoView.js.

This change avoids continuously calling document.getElementById for the
same element.

* Fix firstVisibleElementIndex to always return a dictionary.

Before this change, firstVisibleElementIndex would return -1 if it
doesn't find anything. This made no sense since this function returns a
dictionary on success.

With this change, the function always returns a dictionary with the
expected keys.

* lint fix
2019-01-26 10:14:27 -08:00
Nolan Lawson d976b621b8
chore: move inline-script to src (#917) 2019-01-26 10:14:15 -08:00
Nolan Lawson eb5437e32a
fix: increase custom scrollbar width (#914) 2019-01-26 09:34:16 -08:00
Nolan Lawson 74ab056f18
fix: fix notification m/p keyboard shortcuts (#907)
fixes #905
2019-01-19 23:52:39 -08:00
Nolan Lawson 45d70e8e6b
feat: add more keyboard shortcuts (#904)
* feat: add more keyboard shortcuts

largely fixes #895

* oops wrong test name
2019-01-19 16:40:31 -08:00
Nolan Lawson b014778761
fix: fix keyboard shortcuts in notifications (#903)
fixes #894
2019-01-19 16:04:06 -08:00
Nolan Lawson 031caec406
fix: fix Alt key in keyboard shortcuts (#902)
fixes #896
2019-01-19 15:50:39 -08:00
Nolan Lawson 4a8f65b7fc
chore: refactor src files to src/ directory (#900) 2019-01-19 13:32:36 -08:00
Nolan Lawson cb58a49c04
fix: use more consistent method for checking external links (#893) 2019-01-13 17:11:27 -08:00
Will Pearson cb35a088f4 Make external links open in new tab (#892) 2019-01-13 16:05:41 -08:00
Nolan Lawson ef44c19e8a
feat: date title shows absolute date (#890)
fixes #759
2019-01-13 15:56:39 -08:00
Nolan Lawson 8f84ae5a51
feat: add setting to disable hotkeys (#889) 2019-01-13 14:02:15 -08:00
Nolan Lawson 4a6f7b74a4
feat: 1-6 hotkeys switch columns (#888) 2019-01-13 14:02:08 -08:00
Nolan Lawson 6d1bb64bbb
fix: fix question mark hotkey (#887)
* fix: fix question mark hotkey

* fix tests
2019-01-13 14:02:01 -08:00
Nolan Lawson 29a2892dd0
feat: add hotkey help to settings (#886) 2019-01-13 11:35:04 -08:00
Will Pearson aa69e651ac feat: wrap long posts with spoilers (#873)
* Wrap LONG posts with spoilers

Some ActivityPub software facilitates long form blog posts being pushed
out onto timelines.
Some ActivityPub software have toot lengths which are much larger than
Mastodon's default of 500.

This wraps spoiler tags around those statuses.

* fix lint, extract consts

* extract consts to separate file

* fix test hopefully

* Revert "fix test hopefully"

This reverts commit 7d8e2671ad.

* Fix failing test

* Revert "Fix failing test"

This reverts commit 15b06e1158.

* Revert "Revert "fix test hopefully""

This reverts commit d3776bc9d6.

* measure text after shortening URLs
2019-01-13 10:47:07 -08:00
Stephane Zermatten c2bd2f306a feat: Add support for keyboard shortcuts (#870)
* Add support for keyboard shortcuts.

This change introduces a Shortcut component for defining global
keyboard shortcuts from whichever component makes more sense.

This change also adds an initial set of navigation shortcuts:
- Backspace to leave a modal dialog or to go back
- g t to go to the federated timeline
- g f to go to the favorite page
- g h to go to the home page
- g n to go to the notification page
- g c to go to the community page
- s to go to the search page

These shortcuts are loaded asynchronously from _layout.html

In modal dialogs, shortcuts are also modal, to avoid strange or
overly complex behavior. This is implemented by grouping
shortcuts into scopes, and activating a separate 'modal' scope
when entering a modal dialog, so a separate set of shortcuts can
be enabled in modal dialog. Modal dialogs can be exited by
pressing 'Backspace'.

* Navigate up/down lists using keyboard shortcuts.

This change introduces keyboard shortcuts for navigating in lists and
virtual lists. j or arrow up selects the next element, k or arrow down,
the previous element. Selecting an element scrolls the list up and down,
as necessary.

This change also allows directing keyboard shortcuts to the active
element and defines the following shortcuts, for the active status:
- f to favorite or unfavorite it
- b to boost or unboost it
- r to reply to it
- o to open its thread
- x to toggle the display of a CW
- y to toggle the display of sensitive medias

This works by defining a keyboard shortcut scope for each list element.
A new component, ScrollListShortcuts, keeps track of the active element,
based on list or virtual list elements and redirects shortcuts to the
active element's scope. ScrollListShortcuts keeps the active element in
the current realm of the store, so the active element is restored when
going back to the list.

* Typing h or ? displays the list of available keyboard shortcuts.

This change introduces a new modal dialog that documents the list of
available shortcuts.
2019-01-13 10:03:29 -08:00
Nathan Minchow d7aaec16d3 feat: Add labels to theme groups (#867) 2019-01-12 09:50:17 -08:00
Nolan Lawson e5ef4b9bb1
fix: add better browser notification badges (#857)
* fix: add better browser notification badges

* fix test

* fix tests for real

* actually fix tests
2018-12-30 14:51:03 -08:00
Nolan Lawson e666eb5955
perf: use lodash-lite for some functions (#853) 2018-12-23 10:10:16 -08:00
Nolan Lawson cf94e7d61e
fix: fix unnecessary request for theme-undefined.css (#852) 2018-12-22 15:37:56 -08:00
Nolan Lawson 4ab9687200
perf: load Toast asynchronously (#851) 2018-12-22 15:37:51 -08:00
Nolan Lawson 27da387a01
fix: preserve newlines correctly in delete-and-redraft (#845)
fixes #830
2018-12-19 00:57:56 -08:00
Nolan Lawson d047a265a3
fix(picker): only focus picker search on desktop (#843)
* fix(picker): only focus picker search on desktop

* detect using touch detection instead
2018-12-18 20:01:53 -08:00
Nolan Lawson 7596d905ab
fix(emoji): make emoji picker more like Mastodon's (#842) 2018-12-18 18:24:05 -08:00
Nolan Lawson cd44e33a7e
perf: reduce size of emoji-mart dep using fork (#841) 2018-12-18 14:40:14 -08:00
Nolan Lawson e6ca246527
fix: use emoji-mart all.json, split out json (#839) 2018-12-18 12:45:49 -08:00
Nolan Lawson 2d32a91145
fix: fix appearance of native emoji on linux (#838) 2018-12-18 12:45:41 -08:00
Nolan Lawson 098a20db49
feat: add full emoji picker using emoji-mart (#836)
* feat: add full emoji picker using emoji-mart

Fixes #4

* use a sailboat as the default emoji in the emoji picker

* fix tests

* fix lint
2018-12-18 00:43:51 -08:00
Nolan Lawson bb7fe6e30a
chore: make build process faster/simpler (#833)
This gets rid of the awkward checking-in of `template.html` to git (when
it's a built file) and also makes the rebuilds faster and more
consistent by running everything through the same pipeline. So inline
CSS, SVG, and JS are all partially built on-the-fly.

I've basically reinvented gulp, but it's pretty lightweight and
zero-dep, so I'm happy with it.
2018-12-17 17:21:29 -08:00
Carlos Fernández 669be2e32b Fix Pleroma compability issue (#829)
* Now image and video modals width and height will fallback to "auto" instead of 300x200. Allows proper image visualization in modals when there's no attachment metadata.

* Move background-image in gifv modal to the computed property videoStyle

fixes #750
2018-12-17 13:13:27 -08:00
Nolan Lawson 4ca5b4611f
fix: use correct this.store format in all components (#827) 2018-12-17 11:28:31 -08:00
Nolan Lawson bf9ba22c35
fix: fix logging in and out with a refresh (#824)
* fix: fix logging in and out with a refresh

fixes #805

* simplify code

* make test less flaky

* fix dumb mistake
2018-12-16 12:39:16 -08:00
Nolan Lawson 14a618f374
perf: lazy-load logged-in observers, fix circular dependencies (#823)
* perf: lazy-load logged-in observers, fix circular dependencies

* I guess async deps don't count as circular deps
2018-12-16 10:22:34 -08:00
Nolan Lawson beb4d6e119
perf: avoid caching robots.txt in service worker (#820) 2018-12-16 09:35:02 -08:00
Nolan Lawson 3ae532aee5
fix: fix NODE_ENV and webpack config (#818) 2018-12-15 19:21:20 -08:00
Nolan Lawson f2f5508144
perf: only run getSelection() check if we have to (#817) 2018-12-15 19:21:14 -08:00
Nolan Lawson 260f6acf0e
perf: download and cache polyfills on-the-fly (#814)
* perf: download and cache polyfills on-the-fly

* fixup the localhost switch for service worker, does nothing
2018-12-15 17:13:46 -08:00
Nolan Lawson dbd6c35a88
perf: move indexeddb operations to async module (#813) 2018-12-15 17:13:40 -08:00
Nolan Lawson 89566cacaa
perf: do prefetch to other instance to load it faster (#811) 2018-12-15 17:13:34 -08:00
Nolan Lawson 7ddfe3830a
feat: add drag and drop for media uploads (#809)
* feat: add drag and drop for media uploads

fixes #65

* tweak colors
2018-12-15 02:06:12 -08:00
Nolan Lawson c90ad17686
fix: logging out results in visible homescreen (#807)
* fix: logging out results in visible homescreen

fixes #805

* fixup
2018-12-14 00:25:12 -08:00
Nolan Lawson d5c0268ef2
fix: move page-lifecycle and idb-getall-shim to dynamic modules (#804)
This would help with Rollup compat if we ever decided to switch to
Rollup
2018-12-13 22:55:04 -08:00
Nolan Lawson 5e089ba27d
fix: fix sensitive content warning on mobile (#794) 2018-12-13 00:39:38 -08:00
Nolan Lawson 1940260631
fix: fix delete and redraft on replies (#789)
fixes #786
2018-12-12 23:45:52 -08:00
sgenoud 30705da19d fix: Change the size of sensitive media box (#784)
It is now slightly bigger than what images in a box would look
like.

fixes #771
2018-12-12 23:44:29 -08:00
Nolan Lawson 76a8072e04
fix: show warning when local storage is unavailable (#782)
fixes #780
2018-12-11 22:07:01 -08:00
Nolan Lawson e3f7b3e65c
perf: slightly improve framerate of navbar indicator (#781)
this seems to help mobile firefox on android especially
2018-12-11 22:06:56 -08:00
Nolan Lawson 42978c3c84
fix: fix duplicate statuses in threads (#783)
fixes #511
2018-12-11 22:06:50 -08:00
Nolan Lawson 5d3ceb9eb5
perf(svgs): remove unused svg <title>s (#778)
* perf(svgs): remove unused svg <title>s

* remove double svg wrapper
2018-12-11 08:12:57 -08:00
Nolan Lawson 4bd181d3cc
fix: update Sapper to latest (#775)
* fix: update to latest sapper

fixes #416

* fix error and debug pages

* requestIdleCallback makes column switching feel way nicer than double rAF

* add export feature

* add better csp info

* workaround for sapper sub-page issue

* clarify in readme about exporting

* fix now config

* switch from rIC to triple raf

* style-loader is no longer used

* update theming guide
2018-12-11 07:31:48 -08:00