diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js
index 1d8f616c07..3ce1dfe7d4 100644
--- a/src/components/views/dialogs/DevtoolsDialog.js
+++ b/src/components/views/dialogs/DevtoolsDialog.js
@@ -245,24 +245,22 @@ class SendAccountData extends GenericEditor {
class FilteredList extends React.Component {
static propTypes = {
children: PropTypes.any,
+ query: PropTypes.string,
+ onChange: PropTypes.func,
};
constructor(props, context) {
super(props, context);
this.onQuery = this.onQuery.bind(this);
-
- this.state = {
- query: '',
- };
}
onQuery(ev) {
- this.setState({ query: ev.target.value });
+ if (this.props.onChange) this.props.onChange(ev.target.value);
}
filterChildren() {
- if (this.state.query) {
- const lowerQuery = this.state.query.toLowerCase();
+ if (this.props.query) {
+ const lowerQuery = this.props.query.toLowerCase();
return this.props.children.filter((child) => child.key.toLowerCase().includes(lowerQuery));
}
return this.props.children;
@@ -272,7 +270,7 @@ class FilteredList extends React.Component {
return
{ this.filterChildren() }
@@ -296,11 +294,16 @@ class RoomStateExplorer extends DevtoolsComponent {
this.onBack = this.onBack.bind(this);
this.editEv = this.editEv.bind(this);
+ this.onQueryEventType = this.onQueryEventType.bind(this);
+ this.onQueryStateKey = this.onQueryStateKey.bind(this);
this.state = {
eventType: null,
event: null,
editing: false,
+
+ queryEventType: '',
+ queryStateKey: '',
};
}
@@ -332,6 +335,14 @@ class RoomStateExplorer extends DevtoolsComponent {
this.setState({ editing: true });
}
+ onQueryEventType(filterEventType) {
+ this.setState({ queryEventType: filterEventType });
+ }
+
+ onQueryStateKey(filterStateKey) {
+ this.setState({ queryStateKey: filterStateKey });
+ }
+
render() {
if (this.state.event) {
if (this.state.editing) {
@@ -355,41 +366,47 @@ class RoomStateExplorer extends DevtoolsComponent {
;
}
- const rows = [];
+ let list = null;
const classes = 'mx_DevTools_RoomStateExplorer_button';
if (this.state.eventType === null) {
- Object.keys(this.roomStateEvents).forEach((evType) => {
- const stateGroup = this.roomStateEvents[evType];
- const stateKeys = Object.keys(stateGroup);
+ list =
+ {
+ Object.keys(this.roomStateEvents).map((evType) => {
+ const stateGroup = this.roomStateEvents[evType];
+ const stateKeys = Object.keys(stateGroup);
- let onClickFn;
- if (stateKeys.length > 1) {
- onClickFn = this.browseEventType(evType);
- } else if (stateKeys.length === 1) {
- onClickFn = this.onViewSourceClick(stateGroup[stateKeys[0]]);
+ let onClickFn;
+ if (stateKeys.length > 1) {
+ onClickFn = this.browseEventType(evType);
+ } else if (stateKeys.length === 1) {
+ onClickFn = this.onViewSourceClick(stateGroup[stateKeys[0]]);
+ }
+
+ return ;
+ })
}
-
- rows.push();
- });
+ ;
} else {
- const evType = this.state.eventType;
- const stateGroup = this.roomStateEvents[evType];
- Object.keys(stateGroup).forEach((stateKey) => {
- const ev = stateGroup[stateKey];
- rows.push();
- });
+ const stateGroup = this.roomStateEvents[this.state.eventType];
+
+ list =
+ {
+ Object.keys(stateGroup).map((stateKey) => {
+ const ev = stateGroup[stateKey];
+ return ;
+ })
+ }
+ ;
}
return
-
- { rows }
-
+ { list }
@@ -411,11 +428,14 @@ class AccountDataExplorer extends DevtoolsComponent {
this.onBack = this.onBack.bind(this);
this.editEv = this.editEv.bind(this);
this._onChange = this._onChange.bind(this);
+ this.onQueryEventType = this.onQueryEventType.bind(this);
this.state = {
isRoomAccountData: false,
event: null,
editing: false,
+
+ queryEventType: '',
};
}
@@ -451,6 +471,10 @@ class AccountDataExplorer extends DevtoolsComponent {
this.setState({ editing: true });
}
+ onQueryEventType(queryEventType) {
+ this.setState({ queryEventType });
+ }
+
render() {
if (this.state.event) {
if (this.state.editing) {
@@ -487,7 +511,7 @@ class AccountDataExplorer extends DevtoolsComponent {
return