Add telemetry for how many people use breadcrumbs

Fixes https://github.com/vector-im/riot-web/issues/9207
This commit is contained in:
Travis Ralston 2019-04-04 14:17:15 -06:00
parent 2496ee3b66
commit 035f6b14c0
4 changed files with 25 additions and 6 deletions

View file

@ -27,6 +27,7 @@ import VectorConferenceHandler from '../../VectorConferenceHandler';
import TagPanelButtons from './TagPanelButtons';
import SettingsStore from '../../settings/SettingsStore';
import {_t} from "../../languageHandler";
import Analytics from "../../Analytics";
const LeftPanel = React.createClass({
@ -53,10 +54,11 @@ const LeftPanel = React.createClass({
this.focusedElement = null;
this._settingWatchRef = SettingsStore.watchSetting(
"feature_room_breadcrumbs", null,
this._onBreadcrumbsChanged);
"feature_room_breadcrumbs", null, this._onBreadcrumbsChanged);
this.setState({breadcrumbs: SettingsStore.isFeatureEnabled("feature_room_breadcrumbs")});
const useBreadcrumbs = SettingsStore.isFeatureEnabled("feature_room_breadcrumbs");
Analytics.setBreadcrumbs(useBreadcrumbs);
this.setState({breadcrumbs: useBreadcrumbs});
},
componentWillUnmount: function() {
@ -84,6 +86,10 @@ const LeftPanel = React.createClass({
return false;
},
componentDidUpdate(newProps, newState) {
Analytics.setBreadcrumbs(newState.breadcrumbs);
},
_onBreadcrumbsChanged: function(settingName, roomId, level, valueAtLevel, value) {
// Features are only possible at a single level, so we can get away with using valueAtLevel.
// The SettingsStore runs on the same tick as the update, so `value` will be wrong.