add ability to filter room state types/results

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Michael Telatynski 2017-09-18 12:03:11 +01:00
parent af450df513
commit dccee6d419
No known key found for this signature in database
GPG key ID: 3F879DA5AD802A5E
2 changed files with 14 additions and 1 deletions

View file

@ -175,9 +175,11 @@ class RoomStateExplorer extends React.Component {
this.onBack = this.onBack.bind(this); this.onBack = this.onBack.bind(this);
this.editEv = this.editEv.bind(this); this.editEv = this.editEv.bind(this);
this.onQuery = this.onQuery.bind(this);
} }
state = { state = {
query: '',
eventType: null, eventType: null,
event: null, event: null,
}; };
@ -213,6 +215,10 @@ class RoomStateExplorer extends React.Component {
}); });
} }
onQuery(ev) {
this.setState({ query: ev.target.value });
}
render() { render() {
if (this.state.event) { if (this.state.event) {
return <div className="mx_ViewSource"> return <div className="mx_ViewSource">
@ -230,6 +236,9 @@ class RoomStateExplorer extends React.Component {
if (this.state.eventType === null) { if (this.state.eventType === null) {
Object.keys(this.roomStateEvents).forEach((evType) => { Object.keys(this.roomStateEvents).forEach((evType) => {
// Skip this entry if does not contain search query
if (this.state.query && !evType.includes(this.state.query)) return;
const stateGroup = this.roomStateEvents[evType]; const stateGroup = this.roomStateEvents[evType];
const stateKeys = Object.keys(stateGroup); const stateKeys = Object.keys(stateGroup);
@ -248,6 +257,9 @@ class RoomStateExplorer extends React.Component {
const evType = this.state.eventType; const evType = this.state.eventType;
const stateGroup = this.roomStateEvents[evType]; const stateGroup = this.roomStateEvents[evType];
Object.keys(stateGroup).forEach((stateKey) => { Object.keys(stateGroup).forEach((stateKey) => {
// Skip this entry if does not contain search query
if (this.state.query && !stateKey.includes(this.state.query)) return;
const ev = stateGroup[stateKey]; const ev = stateGroup[stateKey];
rows.push(<button className="mx_DevTools_RoomStateExplorer_button" key={stateKey} rows.push(<button className="mx_DevTools_RoomStateExplorer_button" key={stateKey}
onClick={this.onViewSourceClick(ev)}> onClick={this.onViewSourceClick(ev)}>
@ -258,6 +270,7 @@ class RoomStateExplorer extends React.Component {
return <div> return <div>
<div className="mx_Dialog_content"> <div className="mx_Dialog_content">
<input onChange={this.onQuery} placeholder={_t('Filter results')} size="64" className="mx_TextInputDialog_input mx_DevTools_RoomStateExplorer_query" value={this.state.query} />
{rows} {rows}
</div> </div>
<div className="mx_Dialog_buttons"> <div className="mx_Dialog_buttons">

View file

@ -14,6 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
.mx_DevTools_RoomStateExplorer_button { .mx_DevTools_RoomStateExplorer_button, .mx_DevTools_RoomStateExplorer_query {
margin-bottom: 10px; margin-bottom: 10px;
} }