diff --git a/packages/builder/src/App.svelte b/packages/builder/src/App.svelte index d10c04727f..163a78ac73 100644 --- a/packages/builder/src/App.svelte +++ b/packages/builder/src/App.svelte @@ -5,6 +5,16 @@ import { routes } from "../routify/routes" import { store, initialise } from "builderStore" import NotificationDisplay from "components/common/Notification/NotificationDisplay.svelte" + import { notifier } from "builderStore/store/notifications" + + function showErrorBanner() { + notifier.danger("Whoops! Looks like we're having trouble. Please refresh the page.") + } + + onMount(async () => { + window.addEventListener("error", showErrorBanner) + window.addEventListener("unhandledrejection", showErrorBanner) + }) $basepath = "/_builder" diff --git a/packages/builder/src/builderStore/store/backend.js b/packages/builder/src/builderStore/store/backend.js index 130ca0c454..ecb2b6550e 100644 --- a/packages/builder/src/builderStore/store/backend.js +++ b/packages/builder/src/builderStore/store/backend.js @@ -68,11 +68,11 @@ export const getBackendUiStore = () => { return state }), save: async ({ model }) => { - const updatedModel = cloneDeep(model) - const SAVE_MODEL_URL = `/api/models` - await api.post(SAVE_MODEL_URL, updatedModel) + const response = await api.post(SAVE_MODEL_URL, model) + const json = await response.json() await store.actions.models.fetch() + store.actions.models.select(json) }, addField: field => { store.update(state => { diff --git a/packages/builder/src/components/common/LinkedRecordSelector.svelte b/packages/builder/src/components/common/LinkedRecordSelector.svelte index bad03f436d..a494abc805 100644 --- a/packages/builder/src/components/common/LinkedRecordSelector.svelte +++ b/packages/builder/src/components/common/LinkedRecordSelector.svelte @@ -60,7 +60,7 @@