Use a static prop on Stickerpicker to track the current widget

This commit is contained in:
Travis Ralston 2019-04-03 17:16:56 -06:00
parent ad777782b8
commit 10369170ed
2 changed files with 6 additions and 18 deletions

View File

@ -37,6 +37,9 @@ const STICKERPICKER_Z_INDEX = 3500;
const PERSISTED_ELEMENT_KEY = "stickerPicker";
export default class Stickerpicker extends React.Component {
static currentWidget;
constructor(props) {
super(props);
this._onShowStickersClick = this._onShowStickersClick.bind(this);
@ -131,12 +134,12 @@ export default class Stickerpicker extends React.Component {
_updateWidget() {
const stickerpickerWidget = WidgetUtils.getStickerpickerWidgets()[0];
if (!stickerpickerWidget) {
ActiveWidgetStore.delStickerPickerWidget();
Stickerpicker.currentWidget = null;
this.setState({stickerpickerWidget: null, widgetId: null});
return;
}
const currentWidget = ActiveWidgetStore.getStickerPickerWidget();
const currentWidget = Stickerpicker.currentWidget;
let currentUrl = null;
if (currentWidget && currentWidget.content && currentWidget.content.url) {
currentUrl = currentWidget.content.url;
@ -152,7 +155,7 @@ export default class Stickerpicker extends React.Component {
PersistedElement.destroyElement(PERSISTED_ELEMENT_KEY);
}
ActiveWidgetStore.setStickerPickerWidget(stickerpickerWidget);
Stickerpicker.currentWidget = stickerpickerWidget;
this.setState({
stickerpickerWidget,
widgetId: stickerpickerWidget ? stickerpickerWidget.id : null,

View File

@ -42,9 +42,6 @@ class ActiveWidgetStore extends EventEmitter {
// What room ID each widget is associated with (if it's a room widget)
this._roomIdByWidgetId = {};
// The sticker picker widget definition the app is currently using, if any
this._stickerPickerWidget = null;
this.onRoomStateEvents = this.onRoomStateEvents.bind(this);
this.dispatcherRef = null;
@ -151,18 +148,6 @@ class ActiveWidgetStore extends EventEmitter {
delete this._roomIdByWidgetId[widgetId];
this.emit('update');
}
getStickerPickerWidget() {
return this._stickerPickerWidget;
}
setStickerPickerWidget(widget) {
this._stickerPickerWidget = widget;
}
delStickerPickerWidget() {
this._stickerPickerWidget = null;
}
}
if (global.singletonActiveWidgetStore === undefined) {