Commit graph

518 commits

Author SHA1 Message Date
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 40cb793e81
fix: fix word filter style on small screens (#2002) 2021-03-15 22:25:40 -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 a7fb2e68dd
perf: avoid importing the DB for non-logged-in users (#1998) 2021-03-15 17:25:20 -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 193db0aa15
perf: remove quick-login.html (#1994) 2021-03-14 13:39:32 -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 650751d343
fix: fix dangling } in string (#1976) 2021-02-28 16:36:47 -08:00
Timo Tijhof 5573f7cf32
chore: clean up input.type property access (#1975)
Follows-up 4218c4ce64.

When accessing the IDL property, values tend to be reflected in a normalised
type and form. In the case of HTMLInputElement.type, this means the
returned value is always one of the supported and canonical lowercase
values regardless of what value the corresponding attribute holds, or
even if the attribute doesn't exist (the default will still be "text").
2021-02-28 14:46:23 -08:00
Nolan Lawson 8c09ede2d4
feat: implement shortcut for opening/closing all CWs (#1973)
Fixes #1914
2021-02-27 18:31:53 -08:00
Nolan Lawson 67a338be17
fix: tweak style of audio player (#1968) 2021-02-22 20:37:18 -08:00
Nolan Lawson ef3f107d82
fix: tweak emoji picker style on mobile (#1969)
* fix: tweak emoji picker style on mobile

* fix: remove unnecessary global styles
2021-02-22 20:37:08 -08:00
Nolan Lawson b2583277eb
chore: update to webpack v5 (#1967)
The bundle size has decreased slightly, so I really can't complain.
2021-02-20 15:30:58 -08:00
Nolan Lawson 533360e32f
chore: update standard and eslint-plugin-html (#1963) 2021-02-20 13:40:33 -08:00
Nolan Lawson ba3b76f769
fix: fix error message on media upload (#1959) 2021-02-15 19:23:01 -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 c3d25b88cf
feat: allow file-drop to accept multiple files (#1945) 2021-02-15 15:07:13 -08:00
Nolan Lawson 2585b55479
fix: fix custom emoji in secure mode (#1940)
Fixes #1915
2021-02-15 12:54:03 -08:00
Nolan Lawson 456dac73b5
fix: partially fix video/audio in dialogs (#1939) 2021-02-15 12:53:58 -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 4218c4ce64
fix: fix up/down arrows in poll options (#1934)
fixes #1928
2021-02-14 14:01:46 -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 6433a9c644
test: fix timeago unit test (#1906) 2020-11-29 18:50:13 -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 006f0deee8
fix: fix tappable area between toolbar buttons (#1893)
fixes #1884

If "disable entire toot area" is on, then the cursor becomes default between the buttons, and clicking does nothing. If it is off (default), then the cursor is always pointer and clicking between the buttons clicks the whole toot.
2020-11-14 17:22:12 -08:00
Nolan Lawson 9cb16ea91c
fix: move "bookmark" button past "report" (#1891)
fixes #1879
2020-11-14 14:13:45 -08:00
Nolan Lawson 870fa0e93c
feat: add "i" as shortcut to open media (#1890)
fixes #1883
2020-11-14 14:13:38 -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 c683a4b85d
fix: ensure bookmarks page has generated HTML file (#1861)
* fix: ensure bookmarks page has generated HTML file

* fix: only render if not logged in
2020-09-02 18:01:46 -07:00
Emilia Michanek 60a146eb40
fix: pinning the bookmarks page (#1859)
Pinning the bookmarks page would accidentally pin the local timeline page due a forgotten `else if`.

Fixes #1858
2020-09-01 21:57:36 -07:00
Nolan Lawson 07f23c5990
feat: pressing / or s focuses search input (#1855) 2020-08-31 16:06:31 -07:00
Nolan Lawson 430ab4db4c
fix: empty timelines no longer show infinite loading spinner (#1854)
Instead, they now show "Nothing to show." I only fixed this for VirtualList because List should never be non-empty (threads).

Fixes #1763
2020-08-30 18:08:55 -07:00
Nolan Lawson 55b9c8d3b8
fix: use absolute positioning over transform (#1850) 2020-08-29 19:19:24 -07:00
Nolan Lawson 40e9b44adc
fix(VirtualList): fix some TODOs (#1851)
* fix(VirtualList): fix some TODOs

* fix: fix memory leak

* fix: remove dead code
2020-08-29 19:19:16 -07:00
Nolan Lawson 1466371909
test: count store listeners in memory leak test (#1853) 2020-08-29 19:18:53 -07:00
Nolan Lawson 2f41494a9a
fix: tweak language around bookmarking (#1848)
For consistency with the rest of the UI, say "toot" instead of "status" and specify "toot."
2020-08-27 08:49:36 -07:00
Nolan Lawson 08c021bc56
fix: log an error when images cannot be decoded (#1849) 2020-08-27 08:49:22 -07:00
Nolan Lawson 5a9e5ae8bc fix: tidy up bookmarks, add tests 2020-08-25 23:47:20 -07:00
charlag 2113ab3d46 feat: Implement bookmarks, close #1726 2020-08-25 23:47:20 -07:00
Nolan Lawson 36cf9fd56d
test: add test for accessible radio buttons in /community (#1845) 2020-08-25 22:16:14 -07:00
Nolan Lawson 07deb122f3
chore: update emoji-picker-element, use declarative format (#1840) 2020-08-25 16:46:02 -07:00
Nolan Lawson 7de0023d17
fix: add "/" hotkey to help info (#1843) 2020-08-25 16:45:41 -07:00
shine c86d2b5088
feat: add / as a navigation shortcut for search (#1838)
`/` is a well-known vi/vim key-binding for search. It is supported by
Firefox for a 'quick find' feature in addition to the main find feature
available with the Ctrl+F key combination. DuckDuckGo also supports the
key to focus the search bar as well.

Signed-off-by: shine <4771718+shinenelson@users.noreply.github.com>
2020-08-25 16:45:32 -07:00
Nolan Lawson bd09718cf6
fix: improve a11y of autosuggest labels (#1830) 2020-07-06 22:27:04 -07:00
Nolan Lawson b8fef16a92
fix: fix mobile size of picker when searching (#1822) 2020-07-05 12:38:05 -07:00
Nolan Lawson f17096a8ac
fix: emoji picker height on mobile (#1811) 2020-07-04 19:34:21 -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 ec8e872f8d
fix: better error message for invalid instances (#1793) 2020-05-30 11:05:13 -07:00
Nolan Lawson 1fc14107c8
fix: tweak nav indicator so it's a bit more prominent (#1788) 2020-05-20 21:10:56 -07:00
Nolan Lawson bedb636182
fix: css cleanup of nav-related variables (#1786)
* fix: css cleanup of nav-related variables

* changed my mind on this margin
2020-05-20 07:07:47 -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 c610a259d5
fix: ListItem should have proper fade animations (#1771) 2020-05-14 21:22:33 -07:00
Nolan Lawson dacd9dcc5b
fix: fix polls with content warnings (#1768)
* fix: fix polls with content warnings

fixes #1766

* fixup
2020-05-10 19:41:55 -07:00
Nolan Lawson 5c4b44e3dd
fix: fix potential null exception (#1765) 2020-05-03 10:45:32 -07:00
Nolan Lawson 4b4cee3662
fix: fix delete-and-redraft in Firefox Android (#1762)
fixes #1681
2020-05-03 10:45:11 -07:00
Nolan Lawson 0c300f8e70
fix: change all opacity animation timings to 0.2s (#1753) 2020-04-30 21:54:07 -07:00
Nolan Lawson 4ad7de8e8d
fix: fix rendering order bug in Firefox for Android (#1752) 2020-04-29 22:00:20 -07:00
Nolan Lawson 0ce47f0379
fix: fix fade animations on slow devices (#1751)
I noticed that, on 6x CPU throttling in Chrome, the status fade-in animations were not consistent when switching columns. This fixes that using rAF.
2020-04-28 17:48:31 -07:00
Nolan Lawson 5f6c5d89d1
fix: only avoid scrollbar motion for prefers-reduced-motion (#1750)
After thinking about it, I do not believe the scrollbar is that distracting. But for prefers-reduced-motion we should be careful about the scrollbar growing so quickly.
2020-04-28 17:48:25 -07:00
Nolan Lawson e1532ed9d1
perf: calculate plaintext from HTML content in advance in rIC (#1748)
On the Nexus 5 especially, this ensures we no longer have nearly so many
"long tasks" (i.e. responsiveness is better). It moves html-to-txt
calculation to the same step as blurhash decoding, where it can be done
in requestIdleCallback (heck, maybe someday it could just be done in a
worker thread as well).
2020-04-26 18:30:49 -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 a4a9cb7962
fix: fix nav links in Voice Control on iOS (#1746)
fixes #1735
2020-04-25 19:35:03 -07:00
Nolan Lawson 1f0d67fcc4
feat: aria-labels and buttons contain more media info (#1743)
* feat: aria-labels and buttons contain more media info

fixes #1733

* fix lint
2020-04-25 19:03:39 -07:00
Nolan Lawson 912dda8778
fix: fix svelte dev warning about pinIndex (#1729) 2020-03-08 12:01:23 -07:00
Nolan Lawson ec627f9732
fix: fix newlines in poll option titles (#1717) 2020-03-01 13:54:08 -08:00
Nolan Lawson c83c12e617
fix: remove safari-specific service worker code (#1712)
fixes #1595
2020-02-26 07:38:55 -08:00
Nolan Lawson 21a300bd4c
fix: remove intrinsicsize in favor of width/height (#1690) 2019-12-24 10:47:27 -08:00
Nolan Lawson 78014a7f33
fix: remove remount (#1688)
* fix: remove remount

* fixup
2019-12-23 18:10:03 -08:00
Nolan Lawson 22fd567eb1
fix: update emoji-mart, add dark mode and custom categories (#1686) 2019-12-23 11:53:44 -08:00
Isabelle Knott 46ff09b072 fix: Wellness page had the wrong breadcrumb (#1684) 2019-12-23 11:53:35 -08:00
Nolan Lawson 56ab988d1a
fix: fix search width on narrow sizes (#1678) 2019-12-15 09:58:43 -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 1d3859a4e2
fix: fix duplicates in threads (#1672)
fixes #943
2019-12-14 12:04:36 -08:00
Nolan Lawson aa662682f3
fix: restore focus on community page (#1669) 2019-12-13 08:31:05 -08:00
Nolan Lawson 47ade12167
refactor: refactor timeline filtering logic (#1667) 2019-12-08 18:03:39 -08:00
Nolan Lawson 4f9fb5f253
fix: settings pages preserve focus (#1666)
fixes #1658
2019-12-08 18:03:26 -08:00
Nolan Lawson c071ac1174
refactor: refactor focus management (#1662) 2019-11-30 17:43:31 -08:00
Timo Tijhof 9ce900c767 fix: Avoid autocapitalize keyboard for instance name (#1653)
* fix: Avoid autocapitalize keyboard for instance name

On iOS Safari (possibly other browsers as well), auto-capitalization is enabled
even for input fields with inputmode=url.

In my testing, the inputmode attribute is working supported and working (in so
far that iOS does consider it and and provides me a keyboard optimised for URL
inputs, with quick buttons for slash and .com etc).

The autocapitalize is supported on Safari, per:
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html#//apple_ref/doc/uid/TP40008058-autocapitalize

Fixes https://github.com/nolanlawson/pinafore/issues/1652.

* fix: Avoid spell check on Instance name field

Checking of spelling and grammar and automatic corrections thereof
are likely unwanted when entering the instance domain/URL.
2019-11-23 23:42:38 -08:00
Nolan Lawson cbbf5abd7a
test: test for DOM listener memory leaks (#1654)
* test: test for DOM listener memory leaks

* fix whitespace change, unintended
2019-11-23 23:42:22 -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 fec0c282c9
fix: make autosuggest list appear over modal dialog (#1649)
fixes #1645
2019-11-23 13:21:21 -08:00
Nolan Lawson 4221ce1c72
fix: media nav buttons should be a list (#1648)
More work on #1633, improves accessibility of the media nav buttons by cleaning up the list and labels a bit.
2019-11-23 11:25:42 -08:00
Nolan Lawson d03d223fd9
fix: remove aria-pressed entirely (#1647)
More progress on #1633
2019-11-23 11:25:36 -08:00
Nolan Lawson 1b95499008
fix: use radio buttons for pinning timelines (#1644)
* fix: use radio buttons for pinning timelines

more work on #1633

* cleanup styles
2019-11-17 23:02:05 -05:00
Nolan Lawson 568a3f51fe
fix: convert many toggle buttons into regular buttons (#1643)
work on #1633
2019-11-17 21:23:32 -05:00