Commit graph

146 commits

Author SHA1 Message Date
Nolan Lawson e0827be8c8
fix: fix safari 14 idb issue (#2053) 2021-06-19 09:29:32 -07:00
Nolan Lawson c4e8d772dd
fix: fully disable focus-visible for firefox for now (#2041) 2021-05-14 17:54:22 -07:00
Nolan Lawson 3971f9a636
fix: switch to native :focus-visible for firefox 88+ (#2039) 2021-05-11 21:40:40 -07:00
Nolan Lawson ad9609738b
fix: fix a11y for audio/video controls in dialog (#2031) 2021-04-11 09:58:32 -07:00
Nolan Lawson 7a28bd2d88
fix: use is-emoji-supported library (#2030)
* fix: use is-emoji-supported library

* fix: add code comment
2021-04-11 07:42:30 -07:00
Nolan Lawson 69ef9f2798
fix: initialize all Intl formatters lazily (#2026)
fixes #2024
2021-04-02 11:02:01 -07:00
Nolan Lawson 081df2bf82
fix: use day-only time format for wellness setting (#2021)
* fix: use day-only time format for wellness setting

* fix: tweak intl strings

[skip ci]

* test: add test
2021-03-21 18:03:53 -07:00
Nolan Lawson 751ed299f6
fix: remove explicit webpack chunk names (#2016)
* fix: remove explicit webpack chunk names

* fix: fix vercel json
2021-03-21 09:06:08 -07:00
Nolan Lawson 75458a3410
feat: use web badge API to show notifications/follow requests (#2005)
* feat: use web badge API to show notifications/follow requests

Fixes #1900

* fix: change detection logic

* fix: add UA check

* fix: tweak
2021-03-19 08:00:59 -07:00
Nolan Lawson fd321720f2
fix: disable :focus-visible on Firefox (#2003)
* fix: disable :focus-visible on Firefox

* fix: use unambiguous closure
2021-03-18 07:00:42 -07:00
Nolan Lawson 98815714ba
fix: fix name of webpack chunk for intl polyfill (#2001)
* fix: fix name of webpack chunk for intl polyfill

* fix: fix typo
2021-03-15 19:46:58 -07:00
Nolan Lawson c3fb1e2038
fix: media cache should be behind async db API (#1999) 2021-03-15 17:25:13 -07:00
Nolan Lawson 02019e9251
perf: use scheduling.isInputPending() (#1996) 2021-03-14 18:05:57 -07:00
Nolan Lawson 5e7440aaee
feat: accept files in web share target (#1992)
fixes #1009
2021-03-14 10:20:23 -07:00
Nolan Lawson 5e61a8582b
perf: slightly more efficient word filter format (#1991) 2021-03-14 09:24:00 -07:00
Nolan Lawson 4adc8ff748
feat: implement word/phrase filters (#1990)
* feat: implement word filters

* fix: more progress on word filters

* fix: more progress

* fix: more work

* fix: more work

* fix: more progress

* fix: tweaks

* fix: basic crud stuff

* fix: more work

* test: add tests

* test: more test

* fix: handle filter expiry correctly

* fix: implement more efficient word filter logic

* fix: better required labels

* test: fix test
2021-03-13 17:31:17 -08:00
Nolan Lawson f22b1bf328
perf: reduce tesseract bundle size by directly importing createWorker (#1979) 2021-03-06 09:07:06 -08:00
Nolan Lawson a2dcbcdcda
fix: use class instead of object for easier debugging (#1980) 2021-03-06 09:07:00 -08:00
Nolan Lawson 533360e32f
chore: update standard and eslint-plugin-html (#1963) 2021-02-20 13:40:33 -08:00
Nolan Lawson 760b7f6cd4
fix: fix Intl.RelativeTimeFormat on iOS 13 (#1947)
Fixes #1938
2021-02-15 15:07:19 -08:00
Nolan Lawson a3d0c87e27
fix: fix cursor set incorrectly on WebKit browsers (#1937)
fixes #1921
2021-02-14 18:44:14 -08:00
Nolan Lawson a028a7e880
feat: intl support for emoji picker (#1910)
* feat: intl support for emoji picker

Fixes #1908

* fix: update emoji-picker-element

* fix: fix typo
2020-12-18 20:02:36 -08:00
Nolan Lawson 0022286b46
fix: first stab at i18n, extract English strings, add French (#1904)
* first attempt

* progress

* working

* working

* test timeago

* rm

* get timeago working

* reduce size

* fix whitespace

* more intl stuff

* more effort

* more work

* more progress

* more work

* more intl

* set lang=LOCALE

* flatten

* more work

* add ltr/rtl

* more work

* add comments

* yet more work

* still more work

* more work

* fix tests

* more test and string fixes

* fix test

* fix test

* fix test

* fix some more strings, add test

* fix snackbar

* fix }

* fix typo

* fix english

* measure perf

* start on french

* more work on french

* more french

* more french

* finish french

* fix some missing translations

* update readme

* fix test
2020-11-29 14:13:27 -08:00
Nolan Lawson 69aad56421
fix: fix tainted canvas error with OCR (#1902)
* fix: fix tainted canvas error with OCR

fixes #1901

* fix: minor tweaks
2020-11-24 15:37:10 -08:00
Nolan Lawson 37711ee17e
fix: dynamically import focus-visible polyfill for emoji picker (#1870) 2020-09-13 15:34:01 -07:00
Nolan Lawson 7803bdf797
fix: remove LEGACY mode (#1867) 2020-09-13 13:37:54 -07:00
Nolan Lawson bd09718cf6
fix: improve a11y of autosuggest labels (#1830) 2020-07-06 22:27:04 -07:00
Nolan Lawson 44c1b6feb5 fix: fix ajax code, add test, switch parser library 2020-07-04 19:34:01 -07:00
charlag 5e7c8003db fix: Fix favorites, fix #850
This commit fixes invalid assumption that all timelines are sorted by status id.
Some, like favorites or bookmarks are sorted by private server id. To correctly
paginate we must use the Link header.

To work around the issue, offline for favorites was effectively disabled.
Statuses are still inserted into the database but we can't reproduce correct
timeline order.
2020-07-04 19:34:01 -07:00
Nolan Lawson 1371175bce
feat: use emoji-picker-element, add emoji autocompletions/tooltips (#1804)
* feat: use emoji-picker-element, add emoji autocompletions/tooltips

* fix: fix lint bug

* test: fix emoji in chrome on linux in travis

* test: try bionic in travis

* chore: try to fix travis

* chore: try to fix travis

* fix: filter unsupported emoji

* chore: try to fix travis

* chore: try to fix travis

* chore: try to fix travis

* chore: try to fix travis

* Revert "chore: try to fix travis"

This reverts commit 3cd2d94469b2f1a20c847c2a69e088d7c8d1efdd.

* fix: fix emoji autosuggest

* test: fix test
2020-06-28 23:12:14 -07:00
Nolan Lawson f080148aad
perf: lazy-lazy-load the :focus-visible polyfill (#1785) 2020-05-19 07:52:28 -07:00
Nolan Lawson a790004be7
fix: Revert "perf: always load focus-visible polyfill (#1780)" (#1784)
This reverts commit c98b198e60.
2020-05-18 22:19:33 -07:00
Nolan Lawson c98b198e60
perf: always load focus-visible polyfill (#1780) 2020-05-18 21:11:13 -07:00
Nolan Lawson ea1315858d
perf: use OffscreenCanvas in Chrome 82+ (#1779) 2020-05-18 20:00:02 -07:00
Nolan Lawson cc62000b21
feat: use :focus-visible, add setting to enable/disable it (#1775)
* feat: use :focus-visible, add setting to enable it

* add the ids back

* css cleanup
2020-05-16 13:36:08 -07:00
Nolan Lawson 836b0e341f
perf: lazy-load the thread context (#1774)
* perf: lazy-load the thread context

fixes #898

* more tests

* test: more tests

* simplify implementation
2020-05-16 13:35:57 -07:00
Nolan Lawson ae3bd2bda2
perf: make timeline rendering less janky (#1747)
* perf: make timeline rendering less janky

1. Ensures all statuses are rendered from top to bottom (no more shuffling-card-effect rendering)
2. Wraps all individual status renders in their own requestIdleCallback to improve input responsiveness especially only slow devices like Nexus 5.

* fix focus restoration

* only do rIC on mobile
2020-04-26 16:54:00 -07:00
Nolan Lawson 06a403df28
fix: left/right hotkey works on all settings page (#1745)
fixes #1744
2020-04-25 19:35:14 -07:00
Nolan Lawson c83c12e617
fix: remove safari-specific service worker code (#1712)
fixes #1595
2020-02-26 07:38:55 -08:00
Nolan Lawson 22fd567eb1
fix: update emoji-mart, add dark mode and custom categories (#1686) 2019-12-23 11:53:44 -08:00
Nolan Lawson 79537fb8cd
fix: handle pleroma ping messages (#1676)
* fix: handle pleroma ping messages

fixes #1673

* refactor safeParse
2019-12-15 09:58:00 -08:00
Nolan Lawson 47ade12167
refactor: refactor timeline filtering logic (#1667) 2019-12-08 18:03:39 -08:00
Nolan Lawson 95ef639b21
test: add basic memory leak test (#1650)
* test: add basic memory leak test

* try to fix test
2019-11-23 19:11:15 -08:00
Nolan Lawson 92d77c34be
fix: use radiogroup for instance switcher (#1634)
* fix: use radiogroup for instance switcher

progress on #1633

* fixup

* add unique id
2019-11-17 20:51:28 -05:00
Nolan Lawson 07facea505
fix: improve autosuggest a11y (#1630)
* fix: improve autosuggest a11y

some progress on #1629

- works in Chrome on NVDA now
- works in Chrome on VoiceOver now
- shorter aria-labels, don't repeat information like "1 of 3", because
it causes the screen reader to speak too frequently, e.g. when the
selected result hasn't changed but the number of results has. Also both
NVDA and VoiceOver already speak this information
- stop doing a fancy fade animation, just show and hide the input
instantly. I worry it confuses screen readers to have the aria-hidden
attribute in there at all
- stop using a single id to identify the active descendant - give
immutable IDs and then update the aria-activedescendant instead. I think
this is what fixed Chrome.

* fix test
2019-11-09 20:38:29 -05:00
Nolan Lawson b8d9c29bac
perf: move async modules to individual files (#1611) 2019-10-29 18:58:49 -07:00
Nolan Lawson bb85bcb32b
fix: switch to arrow-key-navigation library (#1607)
For left/right arrow key navigation, switch to a small library I made to
handle this. Also make it load asynchronously, because why not.
2019-10-28 08:16:51 -07:00
Nolan Lawson 9f12d1ca07
fix: use small modules for userAgent.js instead of terser magic (#1602) 2019-10-24 20:37:23 -07:00
Nolan Lawson 7c04b86405
fix: use smooth scroll polyfill in Chrome for scroll-to-top (#1601)
* fix: use smooth scroll polyfill in Chrome for scroll-to-top

* rename thunk to __thunk__ for safety
2019-10-24 19:03:10 -07:00
Nolan Lawson c174c19ddd
fix: fix tesseract.js progress bar (#1599)
* fix: fix tesseract.js progress bar

* fixup
2019-10-23 18:07:24 -07:00