Commit graph

61 commits

Author SHA1 Message Date
Travis Ralston
f2b7042a33 misc cleanup 2019-04-04 09:30:15 -06:00
Travis Ralston
10369170ed Use a static prop on Stickerpicker to track the current widget 2019-04-03 17:16:56 -06:00
Travis Ralston
ad777782b8 Merge branch 'develop' into travis/stickerpicker/remount 2019-04-03 17:00:19 -06:00
Travis Ralston
3f9d088667 Put the stickerpicker below dialogs
Fixes https://github.com/vector-im/riot-web/issues/9353

The ContextualMenu now accepts a zIndex parameter which can be used to control its level. Dialogs are at around 4000 in the z-index, and the context menu defaults to 5000 for the things that need tooltips and such in a dialog.
2019-04-01 20:34:33 -06:00
Travis Ralston
a4f76670c4 Don't re-init the stickerpicker unless something actually changes
Fixes https://github.com/vector-im/riot-web/issues/9354

https://github.com/matrix-org/matrix-react-sdk/pull/2801 introduced a change which tried to make sure that when the widget URL was changed that the picker would be re-mounted, however it accidentally introduced a regression. While it effectively did the task it wanted to, it failed to keep the previously-mounted sticker picker alive. This is because the Stickerpicker component is remounted when opened, and the _updateWidget function is called. This results in this.state not having the "current" widget, meaning a URL change is always detected when the component is remounted (room changes, open sticker picker). 

Instead of remounting always, we'll instead track which sticker picker widget is being used out of band. This therefore means that whenever the Stickerpicker component is mounted it doesn't create a whole new widget, and the existing (background) picker can be used. This also fixes the loading screen that people would see when opening the sticker picker after switching rooms, something which the persistent widget stuff is supposed to solve.
2019-04-01 19:48:05 -06:00
Travis Ralston
a397f333d7 Discard old sticker picker when the URL changes
Fixes https://github.com/vector-im/riot-web/issues/7547
2019-03-16 16:02:38 -06:00
Jason Robinson
02ff1763a2 Ensure scalar_token is valid before opening integrations manager
Since Scalar (and other integration managers) are loaded as apps into
an iframe, a valid `scalar_token` must exist when loading the app.

It is possible that a scalar_token becomes invalid between the time
when the integration manager button was rendered and the user clicking
the link. Here we make a call to integration manager `/account`
before trying to render the integration manager, which ensures we
have a valid token for the integration manager to work with.

Moving the scalar token revalidation to the cases where it is actually
needed could make it possible to decrease the amount of Scalar /account
calls we do when switching rooms, which is currently 3.

Signed-off-by: Jason Robinson <jasonr@matrix.org>
2019-03-13 11:47:00 +02:00
Travis Ralston
b5ffd4a538 Stop listening to account data when the stickerpicker is unmounted
Fixes https://github.com/vector-im/riot-web/issues/8994
2019-02-28 14:15:01 -07:00
Jason Robinson
a74cb001b4 Remove unnecessary ref from Stickerpicker
There is a ref=target in the call to render AccessibleButton for
the hide stickers button. This ref is not present in the show case.

When clicking the stickerpicker show button, React gives a warning:

> Warning: Stateless function components cannot be given refs
> (See ref "target" in AccessibleButton created by Stickerpicker).
> Attempts to access this ref will fail.

Removed the ref. Stickerpicker hide/show still works fine, no warning.

Signed-off-by: Jason Robinson <jasonr@matrix.org>
2019-02-28 15:51:36 +02:00
J. Ryan Stinnett
6c954dadc8 Allow theming message composer buttons 2019-02-13 10:47:04 +00:00
Bruno Windels
f189ff54a8 hide delete & cancel button on stickers are they weren't visible before 2019-02-12 17:01:05 +01:00
J. Ryan Stinnett
20e296b20e Convert image URLs in React to require calls
This allows Webpack to insert the proper image URL after builds steps like
adding a hash and so on. The path you supply to `require` is relative to the JS
source file, just like any other would be.
2019-01-17 22:06:49 -06:00
Nad Chishtie
074c96cd3e First pass of normalising icons. 2018-12-18 16:48:20 +00:00
Bruno Windels
eb453f4539 make icons in composer smaller, better spacing 2018-10-23 18:11:15 +02:00
Peter Vágner
e05ae29146
Also fix accessibility of sticker buttons 2018-10-02 20:19:21 +02:00
Michael Telatynski
4850387ae0
add null-guard for stickerpickerWidget in StickerPicker 2018-07-13 14:24:29 +01:00
Bruno Windels
7bbb967ddd
Merge pull request #2053 from matrix-org/dbkr/jitsi_always_on_screen
Implement always-on-screen capability for widgets
2018-07-13 11:14:37 +01:00
David Baker
8f10ee01c6 Implement always-on-screen capability for widgets
As per https://github.com/matrix-org/matrix-doc/issues/1354

This is whitelisted to only jitsi widgets for now as per comment,
mostly because any widget that we may make always-on-screen we need
to preemptively put in a PersistedElement container, which is
unnecessary for any other widget.

Apologies that this does a bunch of refactoring which could have
been split out separately: I only discovered what needed to be
refactored in the process of doing this.

Fixes https://github.com/vector-im/riot-web/issues/6984
2018-07-11 18:07:32 +01:00
David Baker
25e453badd Fix stickerpicker PersistedElement usage
Earlier PR changed the prop to persistKey in PersistedElement but
containerId here, so this was ending up as 'undefined'.
2018-07-10 17:32:17 +01:00
David Baker
ad35fbf208 Pull out z-index to the sticker picker
As it's not a thing that's necessary for other PersistedElements,
only the sticker picker because it has to sit above the ContextMenu
it sits in.
2018-07-03 18:25:33 +01:00
David Baker
3f88721bc1 Give PersistedElement a key
So there can be more than one on a page
2018-07-03 14:43:27 +01:00
David Baker
6cf11a15e6 Move WidgetUtils to utils dir 2018-06-26 11:59:16 +01:00
David Baker
0f2c47937c Merge the two different widget utils files 2018-06-26 11:52:21 +01:00
David Baker
7588d4380c Merge branch 'release-v0.12.4' into develop 2018-05-14 17:27:01 +01:00
Luke Barnard
e0236c3d3e Fix issue with sticker picker rendering off-screen
when the RightPanel is collapsed on a small monitor
and the sticker picker is opened.
2018-05-14 17:12:45 +01:00
Luke Barnard
3761cd4054 When panels are shown/hidden, hide sticker picker 2018-05-14 16:35:12 +01:00
Luke Barnard
49a3770e92 Merge branch 'release-v0.12.4' into develop 2018-05-14 14:31:18 +01:00
Richard Lewis
dddd1c43cc Remove redundant logging (currently shown on every render when no stickerpicker is present). 2018-05-14 14:23:26 +01:00
Richard Lewis
986fb3237d Remove redundant logging (currently shown on every render when no stickerpicker is present). 2018-05-14 13:56:39 +01:00
Luke Barnard
98c06315cf Update widget state when account data changes 2018-05-14 11:14:49 +01:00
Luke Barnard
9c5c5e282b Send visibility only when changed, and messaging is available 2018-05-11 18:20:23 +01:00
Luke Barnard
06919e22d6 When stickerpicker made visible, send visibility over postMessage 2018-05-11 18:20:00 +01:00
Luke Barnard
42c59b5923 Make AppTile in Stickerpicker persistent using PersistedElement 2018-05-11 18:17:48 +01:00
Luke Barnard
2d2b529f80 Use new ContextualMenu component in Stickerpicker 2018-05-11 18:17:35 +01:00
Luke Barnard
06898394eb Send visibility only when changed, and messaging is available 2018-05-11 18:06:58 +01:00
Luke Barnard
8b049b2182 When stickerpicker made visible, send visibility over postMessage 2018-05-11 16:51:03 +01:00
Luke Barnard
746eeee33c Make AppTile in Stickerpicker persistent using PersistedElement 2018-05-11 15:07:51 +01:00
Luke Barnard
2dc51c516c Use new ContextualMenu component in Stickerpicker 2018-05-11 14:47:57 +01:00
Richard Lewis
8e1ba6d139 Always allow users to edit their user widgets. 2018-05-08 22:44:49 +01:00
Richard Lewis
b5320444a9 Fix current user and creator user ID properties. 2018-05-08 22:05:53 +01:00
Richard Lewis
b2d6dd8f6e Optionally hide widget popout button. 2018-04-25 16:28:27 +01:00
Richard Lewis
da6c2c51fb Remove left and right menu padding 2018-04-04 13:38:48 +01:00
Richard Lewis
8241afe87d Fix content references 2018-04-02 20:25:24 +01:00
Richard Lewis
49bea1a35b Move stickerpicker content out of state in to generator function. 2018-04-02 10:56:45 +01:00
Richard Lewis
d83b6f1cf8 Use AccessibleButton. 2018-04-02 10:18:35 +01:00
Richard Lewis
557a45e890 Remove inline styling. 2018-03-29 22:22:57 +01:00
Richard Lewis
9cc3d3c9bb Move default sticker content into generator function. 2018-03-29 21:48:03 +01:00
Richard Lewis
003cf61388 Handle remove sticker picker errors. 2018-03-29 21:16:35 +01:00
Richard Lewis
6181ca642f "Stickerpack" translation. 2018-03-29 17:47:53 +01:00
Richard Lewis
c8f9586c9b Check for valid reference. 2018-03-29 17:35:21 +01:00