Refactor dialog wrapper component (#4594)

* Dialog wrapper: stop using promises to handle results - replace with callbacks

* Dialog wrapper: handle async operation on close
This commit is contained in:
Levko Kravets
2020-03-10 22:22:42 +02:00
committed by GitHub
parent e552effd96
commit db71ff399c
31 changed files with 677 additions and 749 deletions

View File

@@ -121,16 +121,18 @@ class QuerySnippetsList extends React.Component {
showSnippetDialog = (querySnippet = null) => {
const canSave = !querySnippet || canEditQuerySnippet(querySnippet);
navigateTo("query_snippets/" + get(querySnippet, "id", "new"), true);
const goToSnippetsList = () => navigateTo("query_snippets", true);
QuerySnippetDialog.showModal({
querySnippet,
onSubmit: this.saveQuerySnippet,
readOnly: !canSave,
})
.result.then(() => this.props.controller.update())
.catch(() => {}) // ignore dismiss
.finally(() => {
navigateTo("query_snippets", true);
});
.onClose(querySnippet =>
this.saveQuerySnippet(querySnippet).then(() => {
this.props.controller.update();
goToSnippetsList();
})
)
.onDismiss(goToSnippetsList);
};
render() {