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
- + { rows }