Commit graph

140 commits

Author SHA1 Message Date
Nolan Lawson b014778761
fix: fix keyboard shortcuts in notifications (#903)
fixes #894
2019-01-19 16:04:06 -08:00
Nolan Lawson 4a6f7b74a4
feat: 1-6 hotkeys switch columns (#888) 2019-01-13 14:02:08 -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 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 27da387a01
fix: preserve newlines correctly in delete-and-redraft (#845)
fixes #830
2018-12-19 00:57:56 -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 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 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 1940260631
fix: fix delete and redraft on replies (#789)
fixes #786
2018-12-12 23:45:52 -08:00
Nolan Lawson 631603b0b7
fix: fix flaky test by clicking relative date (#790)
* fix: fix flaky test by clicking relative date

* fix test and add new one
2018-12-12 23:45:42 -08:00
Nolan Lawson 42978c3c84
fix: fix duplicate statuses in threads (#783)
fixes #511
2018-12-11 22:06:50 -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
Nolan Lawson 4d3a2ded2a
chore(tests): skip flaky "thread preserves focus" test (#777) 2018-12-11 07:29:31 -08:00
Nolan Lawson 60751b3339
feat(statuses): implement "Delete and redraft" (#719)
Fixes #469
2018-12-03 23:23:29 -08:00
Nolan Lawson ce61b821c5
feat(ui): add option to always show sensitive media (#709)
fixes #699. I also went ahead and divided the settings into two groups: Preferences and Accessibility
2018-12-01 14:09:08 -08:00
Nolan Lawson a760687c6d
chore(tests): make focus test less flaky (#708) 2018-12-01 12:56:55 -08:00
Nolan Lawson 153e4f4fcd
feat(a11y): add option for short article aria labels (#705)
Actually fixes #694 by providing an option to make the labels like they used to be.
2018-12-01 11:53:20 -08:00
Nolan Lawson 0515133ece
fix(a11y): fix NVDA crash on long aria-label (#702)
* fix(a11y): fix NVDA crash on long aria-label

fixes #694

* use the word truncated instead of ellipsis

* fix test

* really fix tests
2018-12-01 00:10:30 -08:00
Nolan Lawson cc81a7bec6
fix(a11y): improved aria-label for status and notifications (#690)
* fix(a11y): improved aria-label for status and notifications

fixes #689

* only calculate formatted date once

* fixup tests

*  fixup tests more

* fixup

* fixup tests again
2018-11-25 01:20:58 -08:00
Nolan Lawson 48a1bd47b3
refactor(themes): use CSS specificity order for themes (#684)
The point of this PR is to make it easier to implement scrollbars (#683).

With this PR, the themes move from a body tag-based system (e.g. `body.theme-scarlet`) to a system where they simply declare global CSS and we use CSS specificity order to give us the right theme.
2018-11-24 00:41:36 -08:00
Nolan Lawson bae367da7b
test: make tests less flaky (#678) 2018-11-21 22:08:37 -08:00
Nolan Lawson b7f5d04b4c
fix(scrolling): use body as scrolling container (#656)
* fix(scrolling): use body as scrolling container

Fixes #526

* fixup tests and focus
2018-11-17 18:06:49 -08:00
Nolan Lawson 62ac7330fc
feat(title): add dynamic document title (#645)
* feat(title): add dynamic document title

fixes #490 and #643

* fix code style
2018-11-12 18:28:43 -08:00
Nolan Lawson 0964442815
chore(travis): update to mastodon v2.6.1 (#630)
* chore(travis): update to mastodon v2.6.1

* check if mastodon v2.6.1 has a race condition

* apparently in 2.6.1 direct messages no longer appear in home timeline

* Revert "check if mastodon v2.6.1 has a race condition"

This reverts commit dde8ef8be58eda0563170e6b73165fdcbea54f6b.

* try to fix tests

* fix more tests
2018-11-12 12:59:47 -08:00
Nolan Lawson e11738a711 fix tests broken in chrome 70 (#602) 2018-11-04 13:59:14 -08:00
greenkeeper[bot] 8dbc1b0503 Update standard to the latest version 🚀 (#519)
* chore(package): update standard to version 12.0.0

* package lock update

* fix eslint
2018-08-29 21:42:57 -07:00
Nolan Lawson 2449a27767
fix pinned/unpinned state of recently pinned statuses (#521)
* fix pinned/unpinned state of recently pinned statuses

* fixup

* fix test
2018-08-29 18:10:09 -07:00
Nolan Lawson 01b1d083a9
update fav boost accounts for stale views (#510) 2018-08-28 06:45:15 -07:00
Nolan Lawson b60d636ee2
media uploads no longer add URLs to status text (#500)
fixes #8
2018-08-26 18:54:59 -07:00
Nolan Lawson 543536409b
add application (client) name to statuses (#497)
* add application (client) name to statuses

fixes another thing in #6

* add domain blocking (#496)

* add domain blocking

fixes another thing from #6

* show "domain blocking" on profile page

* fix stuff
2018-08-26 15:38:45 -07:00
Nolan Lawson aea952daf0
use better emoji removal algorithm (#452)
another follow-up to #450 to fix #449
2018-08-19 20:25:28 -07:00
Nolan Lawson af1d4b63d3
better support for de-emojified user display names (#451)
improvements to #450 to fix #449, especially for aria labels
2018-08-19 19:31:54 -07:00
Nolan Lawson 37e12e8d73
add option to remove emoji from user display names (#450)
* add option to remove emoji from user display names

fixes #449

* slight memory perf improvement
2018-08-19 18:03:26 -07:00
Nolan Lawson 350667e5df
allow user display names to contain custom emoji (#448)
* allow user display names to contain custom emoji

fixes #445

* fix tests

* fix focus issue
2018-08-19 15:23:40 -07:00
Nolan Lawson e489702dc6
tests: remove more testcafe .find() calls (#376) 2018-06-08 21:54:21 -07:00
Nolan Lawson 08ad25f677
tests: improve flakiness in basic timeline spec (#378) 2018-06-08 21:53:45 -07:00
greenkeeper[bot] 708340502d Update testcafe to the latest version 🚀 (#370)
* chore(package): update testcafe to version 0.20.3

* package-lock update

* make theme test pass
2018-06-07 15:26:21 -07:00
Nolan Lawson efdb0bc534
Remove testcafe roles and run in parallel x4 (#334)
* more attempts to fix test flakiness

* remove testcafe roles entirely

* really remove testcafe roles

* run testcafe in parallel x2

* run testcafe in parallel x4

* fix online/offline forcing in tests

* fix pin test
2018-05-26 13:51:41 -07:00
Nolan Lawson fe12b72293
attempt to fix flaky tests (#318)
* attempt to fix flaky tests

* another attempt to fix flakiness

* more attempts to fix flakiness
2018-05-24 20:01:34 -07:00
Nolan Lawson 8089202977
add ability to pin and unpin statuses (#235)
* add ability to pin and unpin statuses

* add another test
2018-04-29 12:28:44 -07:00
Nolan Lawson ffb00fcc5c
approve/reject follow requests, unblock, unmute (#230)
* approve/reject follow requests, unblock, unmute

* make tests less flaky
2018-04-28 14:19:39 -07:00
Nolan Lawson 8a46f3b3d1 add test and aria-label 2018-04-26 22:37:39 -07:00
Nolan Lawson 6bd4b05a98
fix more bugs in autocomplete (#208)
* fix more bugs in autocomplete

fully fixes #170

* fixup

* fix tests
2018-04-21 14:57:02 -07:00
Nolan Lawson 209b36c73b
fix flaky login tests (#209) 2018-04-21 13:06:46 -07:00
Nolan Lawson e4d2934c67
fix themes (#199)
Fixes #194
2018-04-21 00:33:42 -07:00
Nolan Lawson 581a0fcd00
fix multiple compose autosuggest dropdowns (#188)
* fix multiple compose autosuggest dropdowns

Fixes #170

* fix failing test

* remove console.log
2018-04-20 06:26:36 -07:00
Nolan Lawson 979b4afc89
fix mute test (#174) 2018-04-19 09:34:49 -07:00
Nolan Lawson e431c29efa
update and pin all deps (#164) 2018-04-18 20:43:13 -07:00
Nolan Lawson 00e71293d6
fix autosuggestion mixed with emoji (#154)
fixes #140
2018-04-17 18:38:36 -07:00
Nolan Lawson 980fec15ec
fix favorites/boosts reversed aria labels (#153)
Fixes #146
2018-04-17 18:38:27 -07:00