diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 90bf3a5a99..78bd34bf7f 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -49,7 +49,6 @@ import RoomViewStore from '../../stores/RoomViewStore'; import RoomScrollStateStore from '../../stores/RoomScrollStateStore'; import WidgetEchoStore from '../../stores/WidgetEchoStore'; import SettingsStore, {SettingLevel} from "../../settings/SettingsStore"; -import WidgetUtils from '../../utils/WidgetUtils'; import AccessibleButton from "../views/elements/AccessibleButton"; import RightPanelStore from "../../stores/RightPanelStore"; import {haveTileForEvent} from "../views/rooms/EventTile"; @@ -406,13 +405,9 @@ export default createReactClass({ const hideWidgetDrawer = localStorage.getItem( room.roomId + "_hide_widget_drawer"); - if (hideWidgetDrawer === "true") { - return false; - } - - const widgets = WidgetEchoStore.getEchoedRoomWidgets(room.roomId, WidgetUtils.getRoomWidgets(room)); - - return widgets.length > 0 || WidgetEchoStore.roomHasPendingWidgets(room.roomId, WidgetUtils.getRoomWidgets(room)); + // This is confusing, but it means to say that we default to the tray being + // hidden unless the user clicked to open it. + return hideWidgetDrawer === "false"; }, componentDidMount: function() { diff --git a/src/components/views/rooms/AppsDrawer.js b/src/components/views/rooms/AppsDrawer.js index f7c5e8122f..b64eb33435 100644 --- a/src/components/views/rooms/AppsDrawer.js +++ b/src/components/views/rooms/AppsDrawer.js @@ -81,12 +81,14 @@ export default createReactClass({ const hideWidgetKey = this.props.room.roomId + '_hide_widget_drawer'; switch (action.action) { case 'appsDrawer': + // Note: these booleans are awkward because localstorage is fundamentally + // string-based. We also do exact equality on the strings later on. if (action.show) { - localStorage.removeItem(hideWidgetKey); + localStorage.setItem(hideWidgetKey, "false"); } else { // Store hidden state of widget // Don't show if previously hidden - localStorage.setItem(hideWidgetKey, true); + localStorage.setItem(hideWidgetKey, "true"); } break;