Bug 1367266 - Properly calculate autoscroll prop; r=nchevobbe
MozReview-Commit-ID: K5fJX7HzxGD
--- a/devtools/client/webconsole/new-console-output/reducers/ui.js
+++ b/devtools/client/webconsole/new-console-output/reducers/ui.js
@@ -3,34 +3,38 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {
FILTER_BAR_TOGGLE,
MESSAGE_ADD,
+ REMOVED_MESSAGES_CLEAR,
TIMESTAMPS_TOGGLE
} = require("devtools/client/webconsole/new-console-output/constants");
const Immutable = require("devtools/client/shared/vendor/immutable");
const UiState = Immutable.Record({
filterBarVisible: false,
filteredMessageVisible: false,
autoscroll: true,
timestampsVisible: true,
});
function ui(state = new UiState(), action) {
// Autoscroll should be set for all action types. If the last action was not message
// add, then turn it off. This prevents us from scrolling after someone toggles a
- // filter, or to the bottom of the attachement when an expandable message at the bottom
+ // filter, or to the bottom of the attachment when an expandable message at the bottom
// of the list is expanded. It does depend on the MESSAGE_ADD action being the last in
// its batch, though.
- state = state.set("autoscroll", action.type == MESSAGE_ADD);
+ // It also depends on REMOVED_MESSAGES_CLEAR action being sent after MESSAGE_ADD
+ // if number of messages reached the maximum limit.
+ let autoscroll = action.type == MESSAGE_ADD || action.type == REMOVED_MESSAGES_CLEAR;
+ state = state.set("autoscroll", autoscroll);
switch (action.type) {
case FILTER_BAR_TOGGLE:
return state.set("filterBarVisible", !state.filterBarVisible);
case TIMESTAMPS_TOGGLE:
return state.set("timestampsVisible", action.visible);
}