Commit graph

63 commits

Author SHA1 Message Date
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 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
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 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 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 58a8772edc
perf: lazy-load the ComposeBox (#1262) 2019-06-01 17:01: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 fa2eb8fe52
fix: no need for double reload of SW in Chrome (#1251)
fixes #1243
2019-05-28 08:18:11 -07:00
Nolan Lawson 692e8b57c3
fix: separate "inline theme" from "default theme" (#1216) 2019-05-25 08:19:11 -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 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 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 23bdc6c87e
feat: implement notification filters (all vs mentions) (#1177)
fixes #1176
2019-05-04 17:58:44 -07:00
Nolan Lawson f758e12b24
fix: replace indexWhere with findIndex (#1125) 2019-03-31 09:21:57 -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 f0af8178af
feat: implement "." keyboard shortcut (#1105)
fixes #1052
2019-03-18 09:09:24 -07: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 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 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 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 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
Nolan Lawson cd5b6f8e81
perf: use lite web animations polyfill (#1011) 2019-02-18 11:47:02 -08:00
Nolan Lawson 58d1f62b2b
feat: implement web share target (#980)
fixes #974
2019-02-13 18:38:44 -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 37c85ec7e2
fix: disable smooth scroll for users who prefer reduced motion (#958) 2019-02-09 19:52:40 -08:00
Nolan Lawson 73eb9fba2c
fix: fix carousel and scrollbars for edge browser (#952) 2019-02-09 12:01:29 -08:00
Nolan Lawson 9d594f0bac
feat: add carousel for media modal (#928) 2019-02-02 23:03:40 -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 031caec406
fix: fix Alt key in keyboard shortcuts (#902)
fixes #896
2019-01-19 15:50:39 -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 6d1bb64bbb
fix: fix question mark hotkey (#887)
* fix: fix question mark hotkey

* fix tests
2019-01-13 14:02:01 -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
Nolan Lawson e666eb5955
perf: use lodash-lite for some functions (#853) 2018-12-23 10:10:16 -08:00