Persist pinned message open-ness between room switches

Addresses part of https://github.com/vector-im/riot-web/issues/5405

Signed-off-by: Travis Ralston <travpc@gmail.com>
This commit is contained in:
Travis Ralston 2018-05-26 19:32:23 -06:00
parent bbdc27019a
commit 752605429c
2 changed files with 11 additions and 2 deletions
src
components/structures
settings

View file

@ -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()),
};
// Temporary logging to diagnose https://github.com/vector-im/riot-web/issues/4307
@ -1135,7 +1137,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() {

View file

@ -274,4 +274,8 @@ export const SETTINGS = {
displayName: _td('Enable widget screenshots on supported widgets'),
default: false,
},
"PinnedEvents.isOpen": {
supportedLevels: ['room-device'],
default: false,
},
};