Commit graph

442 commits

Author SHA1 Message Date
lukebarnard
00dc077271 Remove react-dnd, revert fa14bc9 as no longer needed 2018-01-19 13:34:56 +00:00
lukebarnard
16c13fb079 Replace TagPanel react-dnd with react-beautiful-dnd
This new library handles the simple case of an ordered vertical
(or horizontal) list of items that can be reordered.

It provides animations, handles positioning of items mid-drag
and exposes a much simpler API to react-dnd (with a slight loss
of potential function, but we don't need this flexibility here
anyway).

Apart from this, TagOrderStore had to be changed in a highly
coupled way, but arguably for the better. Instead of being
updated incrementally every time an item is dragged over
another and having a separate "commit" action, the
asyncronous action `moveTag` is used to reposition the tag in
the list and both dispatch an optimistic update and carry out
the request as before. (The MatrixActions.accountData is still
used to indicate a successful reordering of tags).

The view is updated instantly, in an animated way, and this
is handled at the layer "above" React by the DND library.
2018-01-15 18:12:27 +00:00
Matthew Hodgson
76ce40715d bump commonmark dep to try to fix https://github.com/vector-im/riot-web/issues/3428 better 2018-01-07 20:32:57 +00:00
Luke Barnard
a8a650c24a Move TagTile to separate file, and make it dragable 2017-12-06 11:25:46 +00:00
Peter Vágner
f9b0243c8e Merge branch 'develop' into dialog-a11y 2017-12-06 11:10:18 +01:00
Peter Vágner
4f83f6cf25 Move keyboard focus management back to the BaseDialog rather than
leaving it in the Modal manager.
We are using Modal manager to load other components not just BaseDialog
and its subclasses and they might require different keyboard handling.
Also depend on focus-trap-react rather than react-focus-trap for locking
keyboard focus inside the dialog. The experience is much nicer and even
the FocusTrap element it-self no longer gains the focus.
On a side note using the FocusTrap element outside the dialog (on
its parent) stops it from working properly.
2017-12-05 08:50:40 +01:00
Luke Barnard
1a283f90f5 v0.11.3 2017-12-04 12:24:21 +00:00
Luke Barnard
50e227f5c0 Bump js-sdk dep. to 0.9.2 2017-12-04 12:15:19 +00:00
Peter Vágner
5ccbcf02e2 Several changes improving accessibility of the dialogs
- Wrapped all the modals inside a react-focus-trap component disabling
keyboard navigation outside the modal dialogs
- Disabled our custom key handling at dialog level. Cancelling on esc
key is now handled via FocusTrap component.
- Removed onEnter prop from the BaseDialog component. Dialogs that
submit data all now embed a form with onSubmit handler. And since
keyboard focus is now managed better via FocusTrap it no longer makes
sense for the other dialog types. Fixes
https://github.com/vector-im/riot-web/issues/5736
- Set aria-hidden on the matrixChat outer node when showing dialogs to
disable navigating outside the modals by using screen reader specific
features.
2017-12-03 21:38:21 +01:00
Richard van der Hoff
a088e559d1 v0.11.2 2017-11-28 10:25:04 +00:00
David Baker
394e450526 v0.11.1 2017-11-17 16:03:50 +00:00
David Baker
8bd040a443 Released js-sdk 2017-11-17 15:58:05 +00:00
Luke Barnard
6fd09bc09a v0.11.0 2017-11-15 11:01:29 +00:00
Luke Barnard
9df169b500 Bump js-sdk to release 0.9.0 2017-11-15 10:59:06 +00:00
Luke Barnard
07f4d0c304 v0.11.0-rc.3 2017-11-14 14:17:22 +00:00
Luke Barnard
21ead6e48e v0.11.0-rc.2 2017-11-10 16:45:30 +00:00
Luke Barnard
07b6c55982 v0.11.0-rc.1 2017-11-10 13:40:17 +00:00
Luke Barnard
b68b60c04c Bump js-sdk dep 2017-11-10 13:37:12 +00:00
Richard Lewis
d2070a08d8 Replace 'qs' dep. with 'querystring' 2017-11-10 11:42:56 +00:00
Richard Lewis
ca1ffdfa9f Remove unused dep. 2017-11-08 17:39:25 +00:00
Richard Lewis
96de72ab44 Switch to using existing dep "qs" and record in package.json 2017-11-07 12:45:12 +00:00
Richard Lewis
6012b35acf Use querystring lib instead of URLSearchParams 2017-10-31 10:22:58 +00:00
Richard Lewis
355d69b024 Add querystring dep. already used by things like url_utils.js. 2017-10-31 10:15:30 +00:00
Richard Lewis
0a7273bf1d Add URL search paramas polyfill 2017-10-27 16:39:04 +01:00
Richard Lewis
f4e3e84765 Merge pull request #1338 from matrix-org/rxl881/parallelshell
Rxl881/parallelshell
2017-10-20 17:11:03 +01:00
Richard Lewis
a49eabda4c Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into rxl881/parallelshell 2017-10-19 16:26:22 +01:00
David Baker
8a9de7343c Add script to prune unused translations 2017-10-19 12:11:21 +01:00
David Baker
027a70ffe7 Add gen-i18n as a 'binary'
and add appropriate shebang
2017-10-19 10:51:54 +01:00
David Baker
61b05e7ec3 Add i18n script to package.json 2017-10-19 10:19:43 +01:00
Richard Lewis
9442184d0d Updated parallelshell dep to ^3.0.2 to match riot-web. 2017-10-19 10:18:31 +01:00
David Baker
8370c823b6 Script to generate the translations base file
Also replaces the translations base file with the output of the
script.
2017-10-17 19:19:01 +01:00
David Baker
f58d89ef80 v0.10.7 2017-10-16 14:45:14 +01:00
David Baker
bcb792a412 Released js-sdk 2017-10-16 14:41:23 +01:00
David Baker
3b515cdebe v0.10.7-rc.3 2017-10-13 16:31:35 +01:00
David Baker
b95c2368a6 v0.10.7-rc.2 2017-10-13 15:02:37 +01:00
David Baker
9036f786e7 v0.10.7-rc.1 2017-10-13 11:10:21 +01:00
David Baker
289fc230fe js-sdk rc.1 2017-10-13 11:05:58 +01:00
Luke Barnard
6b9a2909df Add rule to enforce spacing in curly brackets in JSX children
This required an updated in version of eslint-plugin-react to 7.4.0.
2017-09-28 11:21:06 +01:00
David Baker
78e806f7f9 Merge branch 'master' into develop 2017-09-21 21:48:08 +01:00
David Baker
3552f08aad v0.10.6 2017-09-21 21:47:28 +01:00
David Baker
daac0ebdc0 js-sdk v0.8.4 2017-09-21 21:43:35 +01:00
David Baker
c6e4f606f9 Merge branch 'master' into develop 2017-09-21 18:02:16 +01:00
David Baker
99e4221e61 v0.10.5 2017-09-21 18:01:42 +01:00
David Baker
a0b4d8a9f8 Clean on prerelease
To avoid any further problems where we ship build files with the
wrong capitalisation because npm is dumb
2017-09-21 17:39:34 +01:00
David Baker
6c5f4983da v0.10.4 2017-09-20 15:13:20 +01:00
David Baker
22271ced0d released js-sdk 2017-09-20 15:09:14 +01:00
David Baker
620ca5f211 v0.10.4-rc.1 2017-09-19 10:50:34 +01:00
David Baker
d992d6937e js-sdk rc.1 2017-09-19 10:47:18 +01:00
David Baker
609d61d53c Revert "Implement sticky date separators" 2017-09-06 17:40:58 +01:00
David Baker
5dfd35f730 Merge branch 'master' into develop 2017-09-06 13:26:34 +01:00
David Baker
f5cf2aece2 v0.10.3 2017-09-06 13:25:58 +01:00
David Baker
c75bc42585 v0.10.3-rc.2 2017-09-05 13:13:02 +01:00
David Baker
c07362d7c1 v0.10.3-rc.1 2017-09-01 16:17:22 +01:00
Luke Barnard
a29e7da06b Merge branch 'develop' into luke/feature-sticky-date-separators 2017-08-30 14:06:06 +01:00
Luke Barnard
d516906b36 Implement sticky date separators
Use `react-sticky` to implement sticky date separators. This will pin a date separator to the top of the timeline panel when the separator scrolls out of the top of the view.

A known issue of this is that the spinner, which is in line with event tiles in the timeline, will appear to push the stuck date separator down. In reality the first date separator after the spinner is in line with event tiles and is not stuck because the spinner forces the timeline to be scrolled slightly further down than it would be otherwise. But also, date separators in the timeline (not "stuck") have a greater height.

Ideally the date separator would be suppressed whilst back paginating, but this will cause the stuck separator to flicker on and off. This is why the suppression has been removed.
2017-08-30 13:52:46 +01:00
Richard Lewis
f39f2e525b Update parallelshell version. 2017-08-25 09:52:44 +01:00
David Baker
0e3ae2fa4f v0.10.2 2017-08-24 14:49:41 +01:00
David Baker
1b75470597 Released js-sdk 2017-08-24 14:48:22 +01:00
David Baker
3581f6edaa v0.10.1 2017-08-23 15:56:09 +01:00
David Baker
b8e351f489 Released js-sdk 2017-08-23 15:54:06 +01:00
David Baker
85b609608e v0.10.1-rc.1 2017-08-22 18:53:11 +01:00
David Baker
8312cf6ab2 Temporarily bump version
so we compare to 0.10.0-rc.2 rather than 0.9.7
2017-08-22 18:50:33 +01:00
David Baker
3939d948bf js-sdk v0.10.1-rc.1 2017-08-22 18:43:33 +01:00
Luke Barnard
222aed896f js-sdk #develop 2017-08-16 10:06:50 +01:00
Luke Barnard
8f21ba7f7a js-sdk 0.8.0 2017-08-16 09:37:10 +01:00
Luke Barnard
91c96c1c27 Update draft-js-export-* deps to be compatible with draft-js >0.10.0 2017-08-04 15:08:03 +01:00
Luke Barnard
4f0cf7d6ec Update npm dep of draft-js to 0.11.0-alpha 2017-08-03 11:16:32 +01:00
Luke Barnard
1001c39da9 Upgrade draft-js from 0.8.1 to 0.10.1
This fixes vector-im/riot-web#4675

Some APIs have become deprecated in this version but are still usable ( see https://draftjs.org/docs/v0-10-api-migration.html )
2017-08-01 16:02:28 +01:00
Luke Barnard
0118d880ec Attempt to improve test output to be more readable
- Add "logcapture" reporter to capture logs only for failed tests
 - Add "spec" reporter to show each test status individually
 - Add "summary" reporter to show the total number of successful/failed tests
2017-07-27 14:47:22 +01:00
Richard van der Hoff
4d83150855 Transform async functions to bluebird promises
It turns out that the assertion made in
https://github.com/matrix-org/matrix-react-sdk/pull/1213 about `async`
functions returning bluebird promises was only correct when babel used an
inline version of the `asyncToGenerator` helper; in react-sdk we are using
`babel-transform-runtime` which means that we use a separate
`babel-runtime/helpers/asyncToGenerator`, which returns a native (or core-js)
Promise.

This meant that we were still in the situation where some methods returned
native Promises, and some bluebird ones, which is exactly the situation I
wanted to resolve by switching to bluebird in the first place: in short,
unless/until we get rid of all code which assumes Promises have a `done` method
etc, we need to make sure that everything returns a bluebird promise.

(Aside: there was debate over whether in the long term we should be trying to
wean ourselves off bluebird promises by assuming all promises are native. The
conclusion was that the complexity hit involved in doing so outweighed any
benefit of a potential future migration away from bluebird).
2017-07-13 17:10:08 +01:00
Richard van der Hoff
a06bd84213 replace imports of q with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
David Baker
3093f2d6fb Merge pull request #1211 from matrix-org/rav/use_react_test_utils
Use matrix-react-test-utils rather than our own impl
2017-07-12 16:44:25 +01:00
Richard van der Hoff
928287b8fc Bump to matrix-react-test-utils 0.1.1
... because 0.1.0 was broken
2017-07-12 00:02:52 +01:00
Richard van der Hoff
ab61b6b1b6 Use matrix-react-test-utils rather than our own impl
waitForRenderedDOMComponentWithTag is now in matrix-react-test-utils.
2017-07-11 23:14:56 +01:00
Michael Telatynski
7473c654d5
use npm scripts arg passing instead of $KARMAFLAGS to make cross-compat 2017-07-11 22:54:18 +01:00
David Baker
e242e5e714 Merge pull request #1205 from matrix-org/luke/feature-new-emojis
Bump the dep on emojione to 2.2.7 to add 🦈 and others
2017-07-11 14:13:13 +01:00
Luke Barnard
4766447e15 Bump the dep on emojione to 2.2.7 to add 🦈 and others
Also, re-run node scripts/emoji-data-strip.js to update emoji meta data in src/stripped-emoji.json
2017-07-11 13:48:15 +01:00
Luke Barnard
f9ee89b2f4 Merge branch 'develop' into matthew/whitelist-uri-schemes 2017-07-10 15:42:03 +01:00
Kegsay
e0e321783b Append the scalar_token to the widget URL if the widget URL is a scalar URL (#1182) 2017-07-06 09:28:48 +01:00
Richard van der Hoff
f69033c907 Use headless chrome instead of phantomjs for tests 2017-07-05 14:39:02 +01:00
Luke Barnard
30f80b57f2 Instead of making this part of the build process, let the devs generate stripped-emoji.json
With the expectation that when the file needs to be regenerated to include other keys, the developer will run this script.
2017-06-28 13:28:48 +01:00
Luke Barnard
22ddbc63c3 Make lib dir prior to building
-p option will not error if lib already exists
2017-06-28 11:54:05 +01:00
Luke Barnard
2b8da85726 Strip the emoji meta-data for the data we need
This is done at build time by parsing emojione/emoji.json, stripping it and then writing to ./lib/stripped-emoji.json.
2017-06-28 11:36:19 +01:00
Luke Barnard
8ca3b382ed Use emojione/emoji.json because we don't want two sets of emoji meta 2017-06-28 11:19:16 +01:00
Luke Barnard
9d339b96bd Order emojis by standard ordering, add alternate shortnames
Also, increase the maximum number of emoji shown to 20.
2017-06-27 20:13:48 +01:00
David Baker
c0e48c72fc Remove dep on liblevenstein
While we don't actually use it
2017-06-23 18:03:32 +01:00
Luke Barnard
87609582c6 Merge branch 'develop' into rte-fixes2
Conflicts:
	package.json
	src/autocomplete/CommandProvider.js
	src/autocomplete/UserProvider.js
	src/components/structures/RoomView.js
	src/components/structures/UserSettings.js
	src/components/views/rooms/MessageComposerInput.js
2017-06-23 15:30:06 +01:00
David Baker
f7aad3c422 v0.9.7 2017-06-22 11:57:27 +01:00
David Baker
6881fdf102 js-sdk 0.7.13 2017-06-22 11:52:13 +01:00
David Baker
529e014739 v0.9.6 2017-06-20 13:08:06 +01:00
David Baker
66c3a6d9ca v0.9.5 2017-06-19 13:09:41 +01:00
David Baker
faeb40bc0f Released js-sdk v0.7.12 2017-06-19 12:00:53 +01:00
David Baker
12ad9a2c58 v0.9.5-rc.2 2017-06-16 13:28:49 +01:00
David Baker
82436758b2 v0.9.5-rc.1 2017-06-15 17:17:17 +01:00
David Baker
198d85a673 js-sdk 0.7.12-rc.1 2017-06-15 17:15:26 +01:00
David Baker
a5aa497287 v0.9.4 2017-06-14 11:17:00 +01:00
David Baker
aef0a8025c v0.9.3 2017-06-12 15:50:37 +01:00
David Baker
29355a610f js-sdk 0.7.11 2017-06-12 15:19:52 +01:00
David Baker
336b10daf1 v0.9.3-rc.2 2017-06-09 22:13:54 +01:00
David Baker
c61942ed5d We now require flux 2.1 because we use utils 2017-06-09 21:42:34 +01:00