diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 990f9bf8bc..7f5b605acb 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -44,7 +44,7 @@ import { KeyCode, isOnlyCtrlOrCmdKeyEvent } from '../../Keyboard'; import RoomViewStore from '../../stores/RoomViewStore'; import RoomScrollStateStore from '../../stores/RoomScrollStateStore'; -import SettingsStore from "../../settings/SettingsStore"; +import SettingsStore, {SettingLevel} from "../../settings/SettingsStore"; const DEBUG = false; let debuglog = function() {}; @@ -115,6 +115,7 @@ module.exports = React.createClass({ showApps: false, isAlone: false, isPeeking: false, + showingPinned: false, // error object, as from the matrix client/server API // If we failed to load information about the room, @@ -182,6 +183,7 @@ module.exports = React.createClass({ isInitialEventHighlighted: RoomViewStore.isInitialEventHighlighted(), forwardingEvent: RoomViewStore.getForwardingEvent(), shouldPeek: RoomViewStore.shouldPeek(), + showingPinned: SettingsStore.getValue("PinnedEvents.isOpen", RoomViewStore.getRoomId()), editingRoomSettings: RoomViewStore.isEditingSettings(), }; @@ -1136,7 +1138,10 @@ module.exports = React.createClass({ }, onPinnedClick: function() { - this.setState({showingPinned: !this.state.showingPinned, searching: false}); + const nowShowingPinned = !this.state.showingPinned; + const roomId = this.state.room.roomId; + this.setState({showingPinned: nowShowingPinned, searching: false}); + SettingsStore.setValue("PinnedEvents.isOpen", roomId, SettingLevel.ROOM_DEVICE, nowShowingPinned); }, onSettingsClick: function() { diff --git a/src/settings/Settings.js b/src/settings/Settings.js index b1bc4161fd..456665aeb8 100644 --- a/src/settings/Settings.js +++ b/src/settings/Settings.js @@ -274,4 +274,8 @@ export const SETTINGS = { displayName: _td('Enable widget screenshots on supported widgets'), default: false, }, + "PinnedEvents.isOpen": { + supportedLevels: ['room-device'], + default: false, + }, };